Choisissez des variables basées sur le nom (expression régulière simple)
Question
Je voudrais incorporer des noms de variables qui impliquent ce que je devrais en faire. J'imagine une base de données "enquête".
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)))
J'aimerais maintenant faire certaines choses avec toutes les variables contenant likert , d'autres avec des variables contenant Bern etc.
Comment cela peut-il être fait en R?
La solution
Vous pouvez utiliser grep ()
avec noms de colonnes ()
:
survey[,grep("bern", colnames(survey))]
Autres conseils
Si vous souhaitez saisir une série de noms, vous pouvez également utiliser correspondance. peut-être avez-vous souvent besoin de variables "pouls", "exercice", "hauteur", "poids", et "age", mais ils apparaissent parfois à des endroits différents ou avec d'autres variables ajoutées. Vous pouvez enregistrer le vecteur de noms communs, puis les faire correspondre à la structure de données et n’avoir qu'un nouveau df de vos colonnes standard dans l’ordre que vous souhaitez.
basenames <- c("pulse", "exercise", "height", "weight", "age")
get.columns <- match(basenames, names(dataframe))
new.df <- dataframe[,get.columns]
Les " opérateurs " package permet une syntaxe de type Perl:
library(operators)
survey[, colnames(survey) %~% "bern"]
ou
subset(survey, select = colnames(survey) %~% "bern")