我正在尝试为" n"改进以下代码列和我到目前为止没有骰子。
A = runif(1000, -2, 2)
B = data.frame(A, runif(1000, -0.5, 0.5), runif(1000, -0.25, 0.25), runif(1000, -0.1, 0.1), ...)
X[, 1] = B[, 1] - B[, 2] # << I am stuck in this steps
X[, 2] = X[, 1] - B[, 3] # << I am stuck in this steps
X[, 3] = X[, 2] - B[, 4] # << I am stuck in this steps
...
...
...
X[, n] = X[, n-1] - B[, n+1] # << I am stuck in this steps
W = data.frame(B[, 1], X[,1], ... , X[,n])
plot.ts(W, plot.type="multiple")
我已经尝试使用&#34; for循环&#34;但是R不理解&#34; n-1&#34;和&#34; n + 1&#34;索引增量。
答案 0 :(得分:3)
您可以使用Reduce
和accumulate=TRUE
按顺序将函数应用于数据框的每一列,从而累积结果。在这种情况下,您希望对每对列应用减法。
setNames(data.frame(Reduce("-", dat, accumulate=TRUE)), names(dat))
# x y z
# 1 1 -1 -1
# 2 2 -1 -6
# 3 3 -1 -11
数据:
(dat = data.frame(x=1:3, y=2:4, z=c(0, 5, 10)))
# x y z
# 1 1 2 0
# 2 2 3 5
# 3 3 4 10