我有一个样本数据表:
df <- data.table(indexer = c(0:12), x1 =
c(0,1000,1500,1000,1000,2000,
1000,1000,0,351.2,1000,1000,1851.2)
)现在,我需要在这个数据框架中创建另外两个列x2和x3,比如x2[i] = x1[i] - x3[i]和x3[i] = x2[i-1]以及x3[1]=0。
如果不以有效的方式使用循环,我如何才能做到这一点?
EDIT1:预期结果如下
x2 = c(0.0,1000.0,500.0,500.0,500.0,1500.0,-500.0,1500.0,-1500.0,1851.2,-851.2,1851.2,0.0) 和
x3 = c(0.0,0.0,1000.0,500.0,500.0,500.0,1500.0,-500.0,1500.0,-1500.0,1851.2,-851.2,1851.2)EDIT2:第一次在这里发问。因此,所有这些混乱。忘了那些例子吧,公式是:
x3[i] = c - x2[i-1]*(1+r/12); x2[i] = x1[i] - x3[i]; x3[1] = 0; #c是一些常数。
发布于 2015-01-10 04:55:13
问题是x2和x3相互依赖。因此,我们需要用x2表示x1。

一旦我们有了公式,编程就很容易了:
df$x2 <- (-1)^(df$indexer) * cumsum(df$x1*(-1)^(df$indexer))x3可以从x2中获得。
df$x3 <- c(0,df$x2[-nrow(df)])EDIT2 --我想,如果存在修改后的问题,应该按照同样的思路寻求解决方案。我不认为这是一个与编程相关的问题,因为一旦知道了数学公式,代码就很简单了。
https://stackoverflow.com/questions/27872012
复制相似问题