data.table Fehler, verursacht einen segfault in R

8

Der folgende Code segmentiert meine R 2.15.0 , die data.table 1.8.9 ausführt.

%Vor%

Und zu diesem Zweck haben die folgenden zwei Befehle sehr unterschiedliche Ausgaben:

%Vor%

Einfacherer Befehl stürzt meine R von den Kommentaren ab:

%Vor%

Wie Ricardo hervorhebt, ist es die Kombination aus negativer Indizierung und by , die das Problem verursacht.

    
eddi 16.04.2013, 20:41
quelle

2 Antworten

4

UPDATE: Dies wurde in Version 1.8.11 behoben. Von NEWS :

  

Absturz oder falsche aggregierte Ergebnisse mit negativer Indizierung in i sind behoben, # 2697 .   Danke an Eduard Antonyan (eddi) für die Berichterstattung. Tests hinzugefügt.

    
Arun 08.09.2013, 12:24
quelle
4

Eine Hypothese ist, dass das Problem mit den folgenden Zeilen in [.data.table zusammenhängt:

%Vor%

o__ wird in diesem Fall schließlich als -5 an den C-Code (dogroups.C) übergeben. Man könnte sich vorstellen, dass dies Probleme mit der Zeigerarithmetik verursacht, die zu Segmentierungsfehlern und / oder fehlerhaften Werten führt.

Eine mögliche Problemumgehung wäre die Verwendung von data.table 's Nicht-Join-Syntax:

%Vor%

, die auf dem Weg zu C eine andere Logik durchläuft:

%Vor%     
user1935457 17.04.2013 19:33
quelle

Tags und Links