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
我正在研究一个 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