Чтобы выбрать список имен столбцов, начинающихся с указанной строки c, можно использовать функцию starts_with()
в dplyr
. Для иллюстрации мы выберем два столбца, которые начинаются со строки Sepal
, как в Sepal.Length
и Sepal.Width
.
library(dplyr)
select(iris,starts_with("Sepal")) %>% head()
... и вывод:
> select(iris,starts_with("Sepal")) %>% head()
Sepal.Length Sepal.Width
1 5.1 3.5
2 4.9 3.0
3 4.7 3.2
4 4.6 3.1
5 5.0 3.6
6 5.4 3.9
>
Мы можем сделать то же самое в Base R с grepl()
и регулярным выражением.
# base R version
head(iris[,grepl("^Sepal",names(iris))])
... и вывод:
> head(iris[,grepl("^Sepal",names(iris))])
Sepal.Length Sepal.Width
1 5.1 3.5
2 4.9 3.0
3 4.7 3.2
4 4.6 3.1
5 5.0 3.6
6 5.4 3.9
>
Также обратите внимание, что если кто-то использует read.csv()
для создания фрейма данных в R, он преобразует любые вхождения *
в заголовках столбцов до .
.
# confirm that * is converted to . in read.csv()
textFile <- 'v*1,v*2
1,2
3,4
5,6'
data <- read.csv(text = textFile,header = TRUE)
# see how illegal column name * is converted to .
names(data)
... и вывод:
> names(data)
[1] "v.1" "v.2"
>