我想做的是,如果 b 列中的一行等于 2,那么我想将 3 添加到 a 列中前一行的值。如果不满足条件,那么我不希望更改前一行的值。然而,当我尝试此代码时,R 正在添加到后续行。我用什么替换 -1 行引用并不重要,它总是添加到后续行。
df$a[-1] <- ifelse(df$b == 2, df$a[-1] + 3, df$a[-1])
Have Want
a b a b
0 1 0 1
1 3 4 3
2 2 2 2
2 4 2 4
4 5 4 5
另一种方法
df <- data.frame(a=c(0, 1, 2, 2, 3),
b=c(1, 3, 2, 4, 4))
df$a[c(df$b[-1], 0) == 2] <- df$a[c(df$b[-1], 0) == 2] + 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)