我想总结某些变量(数据框中的列)。 我想按名称的部分选择这些变量。 复杂的是我有各种条件。因此,使用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
答案 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])