Warum funktioniert trace (..., edit = TRUE) nicht, wenn ... = [.data.table

9

Um den Körper einer verpackten Funktion func temporär zu bearbeiten, verwende ich häufig trace(func, edit=TRUE) . Aus irgendeinem Grund lässt R dies jedoch nicht zu, wenn func ist [.data.table :

%Vor%

Fragen: Was könnte diesen Fehler verursachen? Welche anderen Funktionen lösen es auch aus? Gibt es für solche Funktionen eine alternative Lösung, die es mir erlaubt, sie zu bearbeiten?

FWIW, dies scheint kein allgemeines Problem mit Funktionen im data.table zu sein (siehe zB #1 unten), noch ist es ein Problem mit Subset-Methoden im Allgemeinen ( siehe zB #2 unten).

%Vor%

Ich führe R-3.0.0 und data.table_1.8.8 auf einem Windows XP-Rechner aus und erhalte denselben Fehler, egal ob ich options(editor="emacs") , options(editor="notepad") oder den Standard-Editor der R GUI benutze.

    
Josh O'Brien 10.04.2013, 16:47
quelle

1 Antwort

5

Dies wird anscheinend durch die kürzliche Hinzufügung von geschweiften Klammern (d. h. {} ) an einer Stelle in der formalen Argumentliste von data.table verursacht.

Erstens, ein MRE, um zu zeigen, dass geschweifte Klammern wirklich trace(..., edit=TRUE) ersticken:

%Vor%

Für den Datensatz sind hier die Formale für [.data.table in Version 1.8.6 (für die Tracing funktioniert) und Version 1.8.8 (für die es nicht funktioniert):

%Vor%     
Josh O'Brien 11.04.2013, 17:13
quelle

Tags und Links