R 中的多列求和,严格意义上来说,是对每行中的多列求和。
这个问题挺常见的,解决方法也简单,但我竟然忘了R最基础的函数,转而求助于dplyr等包,折腾了好长时间,时间投入和回报相比很不划算了。
seed = 1234
df <- data.table(letter = letters[1:10],
t1 = round(100*rnorm(10,mean=1,sd=1)),
t2 = round(100*rnorm(10,mean=1,sd=1)),
t3 = round(100*rnorm(10,mean=1,sd=1)),
t4 = round(100*rnorm(10,mean=1,sd=1)),
t5 = round(100*rnorm(10,mean=1,sd=1)),
stringsAsFactors = F)
#对2,3,5列求和
df$Part_sum <- rowSums(df[,c(2,3,5)])
df$Part_mean <- df$Part_sum / 3
# letter t1 t2 t3 t4 t5 Part_sum Part_mean
# 1: a 107 -10 23 91 204 188 62.66667
# 2: b -85 20 92 207 125 142 47.33333
# 3: c -67 108 179 -35 342 6 2.00000
# 4: d 92 68 -6 48 169 208 69.33333
# 5: e 42 115 266 75 55 232 77.33333
# 6: f 105 331 168 0 380 436 145.33333
# 7: g -111 -12 -7 -4 383 -127 -42.33333
# 8: h -50 69 145 98 -22 117 39.00000
# 9: i -10 48 79 87 147 125 41.66667
#10: j 199 251 131 -155 79 295 98.33333