通过取消选择不需要的列,在R中按列汇总多列
我试图找到一种方法,通过指定我不想汇总的列来在 R 中按列汇总多列。例如,在以下情况下,我想汇总所有未命名为“cat”或“type”的列:
这个数据框:
df <- data_frame(cat = c('A', 'B', 'C'),
val1 = c(0.1, 0.3, 0.5),
val2 = c(0.2, 0.2, 0.7),
val3 = c(0.14, 0.31, 0.35),
type = c(4, 2, 5))
对此:
df <- data_frame(cat = c('A', 'B', 'C'),
val1 = c(0.1, 0.3, 0.5),
val2 = c(0.2, 0.2, 0.7),
val3 = c(0.14, 0.31, 0.35),
type = c(4, 2, 5),
sum = c(0.44,0.81,1.55))
我一直在尝试使用 dplyr mutate 函数来做到这一点,但我不知道该怎么做。
任何有关如何执行此操作的建议将不胜感激。
回答
您可以使用以下方法删除不需要的列select:
library(dplyr)
df %>% mutate(sum = rowSums(select(., -cat, -type)))
# cat val1 val2 val3 type sum
# <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 A 0.1 0.2 0.14 4 0.44
#2 B 0.3 0.2 0.31 2 0.81
#3 C 0.5 0.7 0.35 5 1.55