R 程序:select 列包含某些词

R program: select columns that contain certain words

我正在研究一个 R 程序,该程序应该 select 包含某些单词的列。例如,我想 select 所有包含 aa 1:

的列
cols<-c('aa z 1','bb x 1', 'aa x 1', 'cc z 1') 
df <- data.frame(matrix(ncol = 5, nrow = 1)) 
colnames(df)<-cols 
df[1,]<-c(1,3,2,2,4)

在这个例子中,这意味着我想要 select 第 1 列 (aa z 1) 和第 3 列 (aa x 1)。有可能吗?

提前感谢您的帮助

dplyr 的解决方案:

library(dplyr)
select(df, matches("^aa.*1$"))

以“aa”开头且以“1”结尾的任意字符数的正则表达式匹配字符串

在基础 R 中,可以执行以下操作:

df[,grepl("^aa.*1$", names(df))]

^aa.*1$ 是使用正则表达式指定的模式。筛选以 aa 开头并以 1.

结尾的所有列

输出

aa z 1 aa x 1
1      1      2