首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R data.table中填充两个关联列

在R data.table中填充两个关联列
EN

Stack Overflow用户
提问于 2015-01-10 01:47:28
回答 1查看 110关注 0票数 0

我有一个样本数据表:

代码语言:javascript
复制
df <- data.table(indexer = c(0:12), x1 =
                   c(0,1000,1500,1000,1000,2000,
                     1000,1000,0,351.2,1000,1000,1851.2)
                                  )

现在,我需要在这个数据框架中创建另外两个列x2x3,比如x2[i] = x1[i] - x3[i]x3[i] = x2[i-1]以及x3[1]=0

如果不以有效的方式使用循环,我如何才能做到这一点?

EDIT1:预期结果如下

代码语言:javascript
复制
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) 

代码语言:javascript
复制
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,18‌​51.2)

EDIT2:第一次在这里发问。因此,所有这些混乱。忘了那些例子吧,公式是:

x3[i] = c - x2[i-1]*(1+r/12); x2[i] = x1[i] - x3[i]; x3[1] = 0; #c是一些常数。

EN

回答 1

Stack Overflow用户

发布于 2015-01-10 04:55:13

问题是x2x3相互依赖。因此,我们需要用x2表示x1

一旦我们有了公式,编程就很容易了:

代码语言:javascript
复制
df$x2 <- (-1)^(df$indexer) * cumsum(df$x1*(-1)^(df$indexer))

x3可以从x2中获得。

代码语言:javascript
复制
df$x3 <- c(0,df$x2[-nrow(df)])

EDIT2 --我想,如果存在修改后的问题,应该按照同样的思路寻求解决方案。我不认为这是一个与编程相关的问题,因为一旦知道了数学公式,代码就很简单了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27872012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档