regex式を使用して、名前に基づいて複数の列を選択したい。私はdplyr
パッケージのパイピング構文でそれをやろうとしています。他のトピックを確認しましたが、1つの文字列についての回答しか見つかりませんでした。
ベース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
どうしましたか?
matches
を使用できます
mtcars %>%
select(matches('m|ar')) %>%
head(2)
# mpg am gear carb
#Mazda RX4 21 1 4 4
#Mazda RX4 Wag 21 1 4 4
による ?select
ドキュメンテーション
「matches(x、ignore.case = TRUE)」:名前が正規表現「x」に一致するすべての変数を選択します
contains
は単一の文字列で動作しますが
mtcars %>%
select(contains('m'))