regulares - grep en r
Elija variables basadas en el nombre(expresión regular simple) (3)
Si tiene una serie de nombres que le gusta tomar, también puede usar match. quizás a menudo necesite variables como "pulso", "ejercicio", "altura", "peso" y "edad", pero a veces aparecen en diferentes lugares o con otras variables añadidas. Puede guardar el vector de nombres comunes, luego compararlos con el marco de datos y tener un nuevo df de solo sus columnas estándar en el orden que desee.
basenames <- c("pulse", "exercise", "height", "weight", "age")
get.columns <- match(basenames, names(dataframe))
new.df <- dataframe[,get.columns]
Me gustaría incorporar nombres de variables que impliquen lo que debería hacer con ellos. Me imagino una "encuesta" de marco de datos.
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)))
Ahora me gustaría hacer ciertas cosas con todas las variables que contienen likert , otras cosas con variables que contienen bern, etc.
¿Cómo se puede hacer esto en R?
El paquete "operadores" permite cierta sintaxis similar a Perl:
library(operators)
survey[, colnames(survey) %~% "bern"]
o
subset(survey, select = colnames(survey) %~% "bern")
Puedes usar grep()
con colnames()
:
survey[,grep("bern", colnames(survey))]