我想使用 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
怎么啦?
4条答案
按热度按时间2guxujil1#
您可以使用
matches
根据
?select
文档'matches(x,ignore.case= TRUE)':选择名称与正则表达式'x'匹配的所有变量
虽然
contains
可以处理单个字符串z4iuyo4d2#
你可以使用
dplyr
包中的contains
,如果你给予一个文本向量选项,像这样:piah890a3#
您仍然可以使用基于R的grepl()。
...它返回一个子集 Dataframe
df
,其中包含列名为m
或ar
的列7eumitmz4#
这里有一个替代方案