met*_*krn 1 conditional r cumsum
我正在清理一些眼动追踪数据,正如预期的那样,它是凌乱的.我坚持一个初步的步骤,我会尽力描述.解决方案可能非常简单.
我有两个变量,一个是二元(x1),另一个是连续的(x2),例如:
dat <- data.frame(x1 = c(0,1,1,0,1,1,1,0,1,1),
x2 = c(22,23,44,25,36,37,28,19,30,41))
Run Code Online (Sandbox Code Playgroud)
我需要创建一个新的变量(x3),它是x2的累积和,仅适用于x1等于1的连续情况.最终产品看起来像这样:
dat <- data.frame(x1 = c(0,1,1,0,1,1,1,0,1,1),
x2 = c(22,23,44,25,36,37,28,19,30,41),
x3 = c(0, 23, 67, 0, 36, 73, 101, 0, 30, 71))
Run Code Online (Sandbox Code Playgroud)
换句话说,这是一个cumsum()的x2每个0后"复位" x1.
dat$x3 <- with(dat, ave(replace(x2, x1 == 0, 0), cumsum(x1 == 0), FUN=cumsum))
dat
# x1 x2 x3
#1 0 22 0
#2 1 23 23
#3 1 44 67
#4 0 25 0
#5 1 36 36
#6 1 37 73
#7 1 28 101
#8 0 19 0
#9 1 30 30
#10 1 41 71
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |