将dplyr函数应用于除一列之外的所有列

时间:2015-07-30 12:58:43

标签: r dplyr

给定除最后一列之外的所有列中都包含数值的数据框,如何计算该行的平均值?

在此示例中,我使用了所有列,包括我想省略的name列。

df <- as.data.frame(matrix(1:40, ncol=10)) %>%
    mutate(name=LETTERS[1:4]) %>%
    mutate(mean=rowMeans(.))

所需的数据帧输出:

  V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 mean name
1  1  5  9 13 17 21 25 29 33  37   19    A
2  2  6 10 14 18 22 26 30 34  38   20    B
3  3  7 11 15 19 23 27 31 35  39   21    C
4  4  8 12 16 20 24 28 32 36  40   22    D

2 个答案:

答案 0 :(得分:12)

你可以尝试:

df %>% 
  mutate(mean = select(., -matches("name")) %>% rowMeans(.))

答案 1 :(得分:1)

在您的设置中,您可以使用

df <- as.data.frame(matrix(1:40, ncol=10)) %>%
  mutate(name=LETTERS[1:4]) %>%
  mutate(mean=rowMeans(.[,1:10]))