data.table berechnet mehrere Spalten gleichzeitig

8

Vielen Dank im Voraus für das Lesen. Ich habe eine Funktion, die bei data gut funktionierte.Tabelle 1.9.3. Aber heute habe ich mein data.table-Paket aktualisiert und meine Funktion funktioniert nicht.

Hier ist meine Funktion und Arbeitsbeispiel für data.table 1.9.3:

%Vor%

Der Punkt ist MEAN.(traits) , SD.(traits) und NA.(traits) werden für alle Spalten berechnet, die ich in traits Variable gebe.

Wenn ich das mit data.table 1.9.4 ausführe, erhalte ich den folgenden Fehler:

%Vor%

Irgendeine Idee, wie ich das beheben sollte?!

    
Mahdi Jadaliha 15.12.2014, 23:09
quelle

2 Antworten

4

Update: Dies wurde jetzt in 1.9.5 behoben commit 1680 . Von NEWS :

  
  1. Ein Fehler in der internen Optimierung von j-expression mit mehr als einem lapply(.SD, function(..) ..) wurde behoben, wie in hier auf SO dargestellt . Schließt # 985. Danke @jadaliha für den Bericht und @BrodieG für das Debugging auf SO.
  2.   

Jetzt funktioniert das wie erwartet:

%Vor%

Dies sieht wie ein Fehler aus, der sich aus der Mehrfachnutzung von lapply(.SD, FUN) in einem data.table -Aufruf in Kombination mit c( ergibt. Sie können umgehen, indem Sie c( durch .( ersetzen.

%Vor%

funktioniert.

%Vor%

funktioniert.

%Vor%

Funktioniert nicht

%Vor%

funktioniert.

    
BrodieG 16.12.2014, 00:53
quelle
2

So? Das Ausgabeformat wurde geringfügig geändert. Aber das Ergebnis ist alles da.

%Vor%     
KFB 16.12.2014 00:48
quelle

Tags und Links