2011-09-26 13 views
14

Dos ejemplos serían muy útiles para mí.¿Cómo selecciono las variables en un marco de datos R cuyos nombres contienen una cadena en particular?

¿Cómo puedo seleccionar: 1) variables cuyos nombres comienzan con variables cuyos nombres contienen un 3

df <- data.frame(a1 = factor(c("Hi", "Med", "Hi", "Low"), 
    levels = c("Low", "Med", "Hi"), ordered = TRUE), 
    a2 = c("A", "D", "A", "C"), a3 = c(8, 3, 9, 9), 
    b1 = c(1, 1, 1, 2), b2 = c(5, 4, 3,2), b3 = c(3, 4, 3, 4), 
    B1 = c(3, 6, 4, 4)) 

Respuesta

28

Si lo que desea es la variable B o B (es decir, entre mayúsculas y minúsculas) o 2) nombres:

grep("^[Bb]", names(df), value=TRUE) 

grep("3", names(df), value=TRUE) 

Si estás interesado en seleccionar aquellas columnas, entonces o bien

df[,grep("^[Bb]", names(df), value=TRUE)] 
df[,grep("^[Bb]", names(df))] 

La primera usa la selección por nombre, la segunda usa la selección por un conjunto de números de columna.

Cuestiones relacionadas