我想根据名称选择多个列regex表达。我正在尝试使用管道语法来做到这一点dplyr
包裹。我检查了其他主题,但只找到了有关单个字符串的答案。
以 R 为基数:
library(dplyr)
mtcars[grepl('m|ar', names(mtcars))]
### mpg am gear carb
### Mazda RX4 21.0 1 4 4
### Mazda RX4 Wag 21.0 1 4 4
但是它不适用于 select/contains 方式:
mtcars %>% select(contains('m|ar'))
### data frame with 0 columns and 32 rows
怎么了?
您可以使用matches
mtcars %>%
select(matches('m|ar')) %>%
head(2)
# mpg am gear carb
#Mazda RX4 21 1 4 4
#Mazda RX4 Wag 21 1 4 4
根据?select
文档
‘matches(x,ignore.case = TRUE)’:选择所有变量
名称与正则表达式“x”匹配
Though contains
使用单个字符串
mtcars %>%
select(contains('m'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)