Löschen von Zeilen abhändig vom Wert in data.table

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Regression
Beiträge: 76
Registriert: Mo Jan 15, 2018 9:57 am

Löschen von Zeilen abhändig vom Wert in data.table

Beitrag von Regression » Mi Sep 19, 2018 11:57 am

Hallo Zusammen,

sei folgender Datensatz gegeben:

Code: Alles auswählen

Data_Sample<-data.table(c(0,90,rep(-1,10)),c(rep(1,12)))
Nun möchte ich die erste Zeile löschen, wenn der zweite Wert V1[2]>0, guppiert durch V2.

Sollte eigentlich trivial sein, leider komme ich momentan nicht dahinter, meine gescheiterne Ansätze soweit die folgende:

Code: Alles auswählen

Data_Sample[2, test_var:= ifelse(V1>0, 1,0), V2]
 Data_Sample[,ifelse(max(test_var)==1, Data_Sample[-1,],Data_Sample), V2]
[1] NA
oder

Code: Alles auswählen

Data_Sample[, test_var:= ifelse(last(head(V1,2))>0, 1,0), V2]
Ich danke Euch im Voraus!
Regression

jogo
Beiträge: 1473
Registriert: Fr Okt 07, 2016 8:25 am

Re: Löschen von Zeilen abhändig vom Wert in data.table

Beitrag von jogo » Mi Sep 19, 2018 1:06 pm

Hallo Regression,

entsprechend Deiner Beschreibung ist dies mein Ansatz:

Code: Alles auswählen

Data_Sample[, if (V1[2]>0) .SD[-1] else .SD, V2]

Code: Alles auswählen

Data_Sample[2, test_var:= ifelse(V1>0, 1,0), V2]
Das musste schief gehen, weil bei [.data.table zuerst der Parameter i= ausgewertet wird; Data_Sample[2] liefert jedoch nur eine Zeile. Danach gibt es nichts mehr zu gruppieren.

Gruß, Jörg

Regression
Beiträge: 76
Registriert: Mo Jan 15, 2018 9:57 am

Re: Löschen von Zeilen abhändig vom Wert in data.table

Beitrag von Regression » Mi Sep 19, 2018 2:25 pm

Ich Danke Dir Jörg!
Auf Dich ist Verlass ;-)

Antworten