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