【发布时间】:2019-03-26 00:18:13
【问题描述】:
我一直在广泛搜索,但无法找到解决方案。
我有一个如下所示的数据框 (df):
variable 2014 2015
1 a 3 4
2 b 2 1
3 c 0 3
4 d 2 3
我想创建一个使用 2014 和 2015 列的新列并进行以下计算:
variable 2014 2015 Bundled
1 a 3 4 3+4=7
2 b 2 1 2+1=3
3 c 0 2 7/3=2.33
4 d 2 3 (3*2 + 4*3)/7
最后的计算本质上是
(df[1,2]*df[4,2] + df[1,3]*df[4,3])/df[1,4]
我基本上尝试在前 3 行中进行相同的计算,但没有附加这些计算,它只是在 R 中返回一个数字。
有没有一种方法可以在创建新列的同时执行不同的计算并在变量列中保持相同的行名?我可以在 dyplyr 中进行变异,它对每一行执行相同的计算(即添加 2014 和 2015 列),创建一个新列但无法执行不同的列。与 data.table 相同。
非常感谢!
【问题讨论】:
-
您能否提供更多有关您正在尝试做的事情的背景信息? (例如,可能有更直接的策略。)另外,是根据
variable中的值,还是根据行位置来选择哪个计算进入Bundled列?你总是有四排吗?等等等等。 -
有关更多上下文,变量 a 和 b 的第 1 行和第 2 行表示计数。例如,在对应于变量“a”的 2014 列中,它表示计数为 3,对于 2015,计数为 4。因此,在捆绑列中,我只是希望添加这些计数。变量 c 的第 3 行表示计数的比例。对于变量 d 的第 4 行,是完全独立的计算。选择哪个计算进入捆绑列取决于变量。我有多个涉及类似计算的行。很抱歉造成混乱!