簡體   English   中英

R data.table選擇組塊中的上一行

[英]R data.table selecting the previous row within group blocks

我有以下示例數據框。

id value
a  3
a  4
a  8
b  9
b  8

我想轉換它,以便我可以計算連續行之間的“值”列的差異。 所以預期的結果是

id value prevValue
a   3     0
a   4     3
a   8     4
b   9     0
b   8     9

請注意,在每個組中,我希望值序列以0開頭,連續值來自前一個值。 我嘗試了以下內容

x = x[,list(
prevValue = c(0,value[1:(.N-1)])
),by=id]

但沒有運氣。 提前致謝。

使用負索引,例如:

x[,prev.value := c(0,value[-.N]) ,by=id]

沒有data.table

with(dat,ave(value,id,FUN=function(x) c(0,head(x,-1))))
[1] 0 3 4 0 9

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM