Questo è ciò che la mia tabella di dati si presenta come:Prendi l'ultima riga di un gruppo precedente data.table
library(data.table)
dt <- fread('
Product Group LastProductOfPriorGroup
A 1 NA
B 1 NA
C 2 B
D 2 B
E 2 B
F 3 E
G 3 E
')
La colonna LastProductOfPriorGroup
è la mia colonna desiderata. Sto cercando di recuperare il prodotto dall'ultima riga del gruppo precedente. Quindi nelle prime due righe non ci sono gruppi precedenti e quindi è NA
. Nella terza riga, il prodotto nell'ultima riga del gruppo precedente 1 è B
. Sto provando a realizzare questo da
dt[,LastGroupProduct:= shift(Product,1), by=shift(Group,1)]
inutilmente.
Si sta utilizzando per = Gruppo 2 volte. Qual è il primo a fare il 2 °? e qual è il significato di $ V1? – gibbz00
@ gibbz00 - Ho aggiunto qualche spiegazione. Spero che sia d'aiuto. –
Si sta calcolando 'shift (dt [, last (Product), da = Group] $ V1)' ancora e ancora per ogni gruppo. Probabilmente farei 'dt [dt [, last (Prodotto), per = Gruppo] [, v: = shift (V1)], on =" Gruppo ", newcol: = iv]' – Frank