Как выбрать переменные в фрейме данных R, чьи имена содержат определенную строку?

Два примера были бы очень полезны для меня.

Как выбрать: 1) переменные, имена которых начинаются с b или B (то есть без учета регистра) или 2) переменные, имена которых содержат 3

df <- data.frame(a1 = factor(c("Hi", "Med", "Hi", "Low"), 
  levels = c("Low", "Med", "Hi"), ordered = TRUE),
  a2 = c("A", "D", "A", "C"), a3 = c(8, 3, 9, 9),
  b1 = c(1, 1, 1, 2), b2 = c( 5, 4, 3,2), b3 = c(3, 4, 3, 4),
  B1 = c(3, 6, 4, 4))

Ответы

Ответ 1

Если вам просто нужны имена переменных:

grep("^[Bb]", names(df), value=TRUE)

grep("3", names(df), value=TRUE)

Если вы хотите выбрать эти столбцы, то

df[,grep("^[Bb]", names(df), value=TRUE)]
df[,grep("^[Bb]", names(df))]

Первый использует выбор по имени, второй использует выбор по набору номеров столбцов.