2009-09-09 3 views
8

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

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?

ответ

15

Вы можете использовать grep() с colnames():

survey[,grep("bern", colnames(survey))] 
3

Если у вас есть ряд имен, которые вы хотели бы захватить вы также можете использовать матч. возможно, вам часто нужны переменные «пульс», «упражнение», «высота», «вес» и «возраст», но иногда они появляются в разных местах или с другими добавленными переменными. Вы можете сохранить вектор общих имен, а затем сопоставить их с фреймворком данных и иметь новый df только ваших стандартных столбцов в том порядке, в котором вы хотите.

basenames <- c("pulse", "exercise", "height", "weight", "age") 
get.columns <- match(basenames, names(dataframe)) 
new.df <- dataframe[,get.columns] 
2

пакет "операторов" позволяет некоторые Perl-подобный синтаксис:

library(operators) 

survey[, colnames(survey) %~% "bern"] 

или

subset(survey, select = colnames(survey) %~% "bern") 

 Смежные вопросы

  • Нет связанных вопросов^_^