Scegli le variabili in base al nome (semplice espressione regolare)
Domanda
Vorrei incorporare i nomi delle variabili che implicano cosa dovrei fare con loro. Immagino un frame di dati "sondaggio".
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)))
Ora vorrei fare alcune cose con tutte le variabili che contengono likert , altre cose con variabili che contengono bern ecc.
Come si può fare in R?
Soluzione
Puoi usare grep ()
con nomi ()
:
survey[,grep("bern", colnames(survey))]
Altri suggerimenti
Se hai una serie di nomi che ti piace prendere puoi anche usare la corrispondenza. forse hai spesso bisogno di variabili "impulso", "esercizio", "altezza", "peso" e "età", ma a volte vengono visualizzati in luoghi diversi o con altre variabili aggiunte. Puoi salvare il vettore di nomi comuni, quindi confrontarli con il frame di dati e avere un nuovo df di sole colonne standard nell'ordine desiderato.
basenames <- c("pulse", "exercise", "height", "weight", "age")
get.columns <- match(basenames, names(dataframe))
new.df <- dataframe[,get.columns]
Gli " operatori " Il pacchetto consente una sintassi simile al Perl:
library(operators)
survey[, colnames(survey) %~% "bern"]
o
subset(survey, select = colnames(survey) %~% "bern")