基于条件求和列时遇到问题。在这里,汇总列表示d23+d24+d25+d26+..+d31
。以下是我的数据框的一部分。
d23 d24 d25 d26 d27 d28 d29 d30 d31
854 -0.60 4.11 8.52 0.90 -7.99 -10.27 -8.32 -6.79 -11.71
855 -1.14 2.66 8.14 0.11 -8.96 -11.25 -9.17 -7.84 -12.53
856 -1.16 0.71 5.45 -1.65 -10.72 -11.18 -11.58 -10.44 -14.29
857 0.08 5.36 9.59 -0.22 -9.79 -9.47 -9.44 -7.67 -10.57
858 -0.95 4.86 8.18 -4.03 -12.15 -11.19 -11.37 -9.47 -13.90
859 -0.70 3.72 8.60 1.87 -6.99 -9.77 -7.84 -6.20 -11.31
如您所见,有正值和负值。我想以这种方式跨列求和,如果值是正数,则将其设置为零;如果该值为负,则取该值的绝对值。最后,汇总各列并创建一个新列。
有什么主意我能意识到吗?
答案 0 :(得分:6)
一种可能是:
colSums(abs(df) * (df < 0))
d23 d24 d25 d26 d27 d28 d29 d30 d31
4.55 0.00 0.00 5.90 56.60 63.13 57.72 48.41 74.31