3

次のサンプルデータフレームがあります。

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]

しかし運がない。前もって感謝します。

4

2 に答える 2

0

なしdata.table:

with(dat,ave(value,id,FUN=function(x) c(0,head(x,-1))))
[1] 0 3 4 0 9
于 2013-08-15T06:07:57.747 に答える