我对R很陌生,想按R中的组来计算累积标准偏差。我有一个数据框D,其中包含访问者ID以及在每个页面上花费的相应页面时间(顶部),如下所示
ID top
v1 2.3
v1 4.8
v1 10.2
v2 16.2
v2 12.2
v2 14.3
v2 12.4
v3 8.2
v3 8.8
输出需要看起来像这样
ID top cum_sd
v1 2.3
v1 4.8 1.76
v1 10.2 4.03
v2 16.2
v2 12.2 2.82
v2 14.3 2.00
v2 12.4 1.15
v3 8.2
v3 8.8 0.42
谢谢您的帮助。
我们可以使用runSD
from TTR
。将'data.frame'转换为'data.table'(setDT(df1)
),按'ID'分组,我们runSD
在'top'列上应用,并分配(:=
)输出以创建'cum_sd'。
library(data.table)
library(TTR)
setDT(df1)[, cum_sd := round(runSD(top, n=1, cumulative=TRUE),2) ,ID]
df1
# ID top cum_sd
#1: v1 2.3 NA
#2: v1 4.8 1.77
#3: v1 10.2 4.04
#4: v2 16.2 NA
#5: v2 12.2 2.83
#6: v2 14.3 2.00
#7: v2 12.4 1.87
#8: v3 8.2 NA
#9: v3 8.8 0.42
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句