通过变量名来总结某些变量(列)

时间:2017-07-21 11:55:23

标签: r dplyr

我想总结某些变量(数据框中的列)。 我想按名称的部分选择这些变量。 复杂的是我有各种条件。因此,使用dplyr中的单个包含不起作用。

以下是一个例子:

ab_yy <- c(1:5)
bc_yy <- c(5:9)
cd_yy <- c(2:6)
de_xx <- c(3:7)

  ab_yy bc_yy cd_yy de_xx
1     1     5     2     3
2     2     6     3     4
3     3     7     4     5
4     4     8     5     6
5     5     9     6     7

dat <- data.frame(ab_yy,bc_yy,cd_yy,de_xx)  
#sum up all variables that contain yy and certain extra conditions
#may look something like this: rowSums(select(dat, contains(("yy&ab")|("yy&bc")) ) )

期望的结果:

6 8 10 12 14

2 个答案:

答案 0 :(得分:4)

编辑:已修复,抱歉,咖啡因含量低

如果您想使用dplyr,请尝试使用matches

    library(dplyr)
    dat %>%
      select(matches("*yy", )) %>%
      select(matches("ab*|bc*")) %>%
      rowSums(.)

[1]  6  8 10 12 14

答案 1 :(得分:3)

我不认为这是最好的方式,但是你可以像grepl那样做:

rowSums(dat[,grepl(pattern = "ab.*yy|bc.*yy",colnames(dat))==T])