Программа R: выберите столбцы, содержащие определенные слова - PullRequest
0 голосов
/ 06 августа 2020

Я изучаю программу R, которая должна выбирать столбцы, содержащие определенные слова. Например, я хотел бы выбрать все столбцы, содержащие 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)

В этом примере это будет означать, что я хотел бы выбрать столбец 1 (aa z 1) и столбец 3 (aa x 1). Есть ли возможность это сделать?

Заранее благодарю за помощь

Ответы [ 2 ]

1 голос
/ 06 августа 2020

В базовом R можно сделать следующее:

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

^aa.*1$ - это шаблон, указанный с помощью регулярного выражения. Отфильтруйте любые столбцы, которые начинаются с aa и заканчиваются 1.

Вывод

aa z 1 aa x 1
1      1      2
1 голос
/ 06 августа 2020

Решение с dplyr:

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

Строки соответствия регулярного выражения, начинающиеся с «aa», содержат любое количество символов и заканчиваются на «1»

...