gri*_*109 5 if-statement row r
我想要做的是如果列b中的行等于2,那么我想在列a中的前一行的值中添加3.如果条件不满足,那么我不希望前一行值改变.当我尝试这个代码但是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
Run Code Online (Sandbox Code Playgroud)
另一种方法
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3824 次 |
最近记录: |