Выбирайте переменные по имени (простое регулярное выражение)
Вопрос
Я хотел бы включить имена переменных, которые подразумевают, что мне следует с ними делать.Я представляю себе «опрос» данных.
library(Rlab) # Needed for rbern() function.
survey <- data.frame(cbind(
id = seq(1:10),
likert_this = sample(seq(1:7),10, replace=T),
likert_that = sample(seq(1:7), 10, replace=T),
dim_bern_varx = rbern(10, 0.6),
disc_1 = sample(letters[1:5],10,replace=T)))
Теперь я хотел бы сделать определенные вещи со всеми переменными, которые содержат Лайкерт, другие вещи с переменными, которые содержат Берн и т. д.
Как это можно сделать в R?
Решение
Вы можете использовать grep ()
с colnames ()
:
survey[,grep("bern", colnames(survey))]
Другие советы
Если у вас есть серия имен, которые вы хотели бы получить, вы также можете использовать match. возможно, вам часто нужны переменные «пульс», «упражнение», «рост», «вес» и "возраст", но иногда они появляются в разных местах или с другими добавленными переменными. Вы можете сохранить вектор общих имен, затем сопоставить их с фреймом данных и получить новый df только ваших стандартных столбцов в нужном вам порядке.
basenames <- c("pulse", "exercise", "height", "weight", "age")
get.columns <- match(basenames, names(dataframe))
new.df <- dataframe[,get.columns]
Пакет «operators» допускает некоторый синтаксис, подобный Perl:
library(operators)
survey[, colnames(survey) %~% "bern"]
или
subset(survey, select = colnames(survey) %~% "bern")