【发布时间】:2018-02-04 13:49:20
【问题描述】:
我想一次将我的数据帧的列的总和添加一行,以具有二进制变量的另一列为条件。
因此,对于每一行,我想为对应行中的二进制变量具有相同值的所有行计算其上方整个列的总和。
这是一个例子:
dummy var1 var2
1 x1 y1
0 x2 y2
0 x3 y3
1 x4 y4
我的目标是获得这个:
dummy var1 var2
1 x1 y1
0 x2 y2
0 x3+x2 y3+y2
1 x4+x1 y4+y1
我之前曾针对简化版本 (Adding columns sums in dataframe row wise) 提出过这个问题,我只是在没有条件的情况下添加了上面的所有值。有没有办法合并这个条件?
【问题讨论】:
-
你可以使用这里提到的
ave函数stackoverflow.com/questions/16850207/… -
那行得通。有没有一种优雅的方法可以将其应用于整个数据框。使用 ave 我可以做到这一点: df$newVar
-
我可以在 apply 中使用它作为我选择的功能吗?
-
对应行的值是否相同?您的意思是如果在第 5 行中虚拟是 1,那么 var1 将是 x4+x1+x5,而 var2 是 y4+y5+y1?或者所有具有相同值的虚拟行具有相同的对应值?它们是两种不同的算法。
-
您的
ave答案看起来很完美。你想如何应用它?您是否担心扩展到超过两列而不将它们全部写出来?