R:对自身的列引用

时间:2016-07-21 19:23:14

标签: r

请帮忙! 我有w:

x   y
0   0
0   0
0   0
0   1
0   0
0   0
0   -1
0   0
0   0
0   1
0   0
0   -1
0   0
0   0

我想得到:

x   y
0   0
0   0
0   0
1   1
1   0
1   0
0   -1
0   0
0   0
1   1
1   0
0   -1
0   0
0   0

我使用R:

for (i in 2:length(w$x)) { w$x[i] = w$x[i-1] + w$y[i]}

是否可以不使用循环语句?

谢谢!

1 个答案:

答案 0 :(得分:4)

这假设您希望从x列中的初始值0开始:

transform(w, x = cumsum(y))
##    x  y
## 1  0  0
## 2  0  0
## 3  0  0
## 4  1  1
## 5  1  0
## 6  1  0
## 7  0 -1
## 8  0  0
## 9  0  0
## 10 1  1
## 11 1  0
## 12 0 -1
## 13 0  0
## 14 0  0

否则您可以包含初始值:

transform(w, x = x[1] + cumsum(y))

这里的结果是一样的。 这两个都假设y[1]为零,或者如果它不为零而您想要使用实际值(您的代码忽略y[1])。