Angenommen, ich habe diesen DatensatzLöschen bestimmte Zeilen in einer Gruppe von Zeilen in R
Id Name Price sales Profit Month Category Mode Supplier
1 A 2 0 0 1 X K John
1 A 2 0 0 2 X K John
1 A 2 5 8 3 X K John
1 A 2 5 8 4 X L Sam
2 B 2 3 4 1 X L Sam
2 B 2 0 0 2 X L Sam
2 B 2 0 0 3 X M John
2 B 2 0 0 4 X L John
3 C 2 0 0 1 X K John
3 C 2 8 10 2 Y M John
3 C 2 8 10 3 Y K John
3 C 2 0 0 4 Y K John
5 E 2 0 0 1 Y M Sam
5 E 2 5 5 2 Y L Sam
5 E 2 5 9 3 Y M Sam
5 E 2 0 0 4 Z M Kyle
5 E 2 5 8 5 Z L Kyle
5 E 2 5 8 6 Z M Kyle
ich für Sales
Zeilen mit Nullen löschen mag, und Profit
Spalt von Id
Gruppe Also für ein bestimmtes Id
, wenn zwei oder mehr aufeinander folgende Zeilen haben Nullwerte für sales
und profit
diese Zeilen werden gelöscht. Also wird dieser Datensatz so aussehen.
Id Name Price sales Profit Month Category Mode Supplier
1 A 2 5 8 3 X K John
1 A 2 5 8 4 X L Sam
2 B 2 3 4 1 X L Sam
3 C 2 0 0 1 X K John
3 C 2 8 10 2 Y M John
3 C 2 8 10 3 Y K John
3 C 2 0 0 4 Y K John
5 E 2 0 0 1 Y M Sam
5 E 2 5 5 2 Y L Sam
5 E 2 5 9 3 Y M Sam
5 E 2 0 0 4 Z M Kyle
5 E 2 5 8 5 Z L Kyle
5 E 2 5 8 6 Z M Kyle
kann ich alle Zeilen entfernen, wenn sie für Sales
Nullwerte haben und Profit
mit
df1 = df[!(df$sales==0 & test$Profit==0),]
Aber wie Zeilen nur in bestimmten Gruppe von Id in diesem Fall löschen
PS Die Idee ist, Einträge für diese Produkte zu löschen, wenn sie nach einigen Monaten zu verkaufen begonnen haben oder nach einigen Monaten in einem Jahr aufgegeben wurden.
Schreiben Sie eine einfache Funktion, die die Löschung durchführt und schließt/schließt die gewünschten Gruppen ein. Dann benutze irgendeinen von 'lapply' a' for' loop, 'data.table' oder '(d) plyr' zu split-apply-combine –