Выбирайте переменные по имени (простое регулярное выражение)

StackOverflow https://stackoverflow.com/questions/1402634

  •  05-07-2019
  •  | 
  •  

Вопрос

Я хотел бы включить имена переменных, которые подразумевают, что мне следует с ними делать.Я представляю себе «опрос» данных.

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")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top