Escolha variáveis ??com base no nome (expressão regular)
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?
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")