Supponiamo che io ho questo set di datiElimina alcune righe in un gruppo di righe 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
voglio eliminare le righe con zeri per Sales
e Profit
colonna Id
gruppo Così per un certo Id
se due o più le righe consecutive hanno zero valori per sales
e profit
quelle righe verranno eliminate. Quindi questo set di dati diventerà così.
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
posso rimuovere tutte le righe se hanno valori zero per Sales
e Profit
con
df1 = df[!(df$sales==0 & test$Profit==0),]
Ma come eliminare solo le righe in certo gruppo in questo caso per Id
PS L'idea è quello di eliminare le voci per quei prodotti se hanno iniziato a vendere dopo pochi mesi o sono stati abbandonati dopo pochi mesi in un ciclo annuale.
Scrivere una semplice funzione che esegue la cancellazione e include/esclude i gruppi desiderati. Quindi usa uno dei 'lapply' a' for' loop, 'data.table', o '(d) plyr' per split-apply-combine –