Pergunta

Eu gostaria de incorporar nomes de variáveis ??que implicam o que devo fazer com eles. I imaginar uma trama de dados de "survey".

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)))

Agora eu gostaria de fazer certas coisas com todas as variáveis ??que contêm Likert , outras coisas com as variáveis ??que contêm berna etc

Como isso pode ser feito em R?

Foi útil?

Solução

Você pode usar grep() com colnames():

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

Outras dicas

Se você tem uma série de nomes que você gosta de pegar você também pode usar jogo. talvez muitas vezes você precisa variáveis ??"pulso", "exercício", "altura", "peso" e "idade", mas às vezes eles aparecem em lugares diferentes ou com outras variáveis ??adicionais. Você pode salvar o vetor de nomes comuns, em seguida, combiná-los contra a trama de dados e ter um novo df de apenas suas colunas padrão na ordem que quiser.

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

O pacote de "operadores" permite alguma Perl-como sintaxe:

library(operators)

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

ou

subset(survey, select = colnames(survey) %~% "bern")
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top