2012-10-12 1 views

Respuesta

43

Usted puede simplemente utilizar el índice y un signo negativo para dejar que la columna:

data[,-3] 

O puede mostrar sólo las primeras 2 columnas:

data[,c("c1", "c2")] 
data[,1:2] 

No olvide que la coma y los cuadros de datos de referencia funcionan de la siguiente manera: datos [fila, columna]

+0

En cuanto a su última frase, realmente no necesita la coma cuando se trabaja con marcos de datos, ya que son listas. –

+0

Claro, pero si va a hacer ese comentario, al menos, muestre un ejemplo de cómo no usar una coma, también conocida como listas de acceso. – tcash21

+0

por ejemplo 'x [1,2]' = 'x [[2]] [[1]]' – tcash21

67

Además de la indexación numérica de tcash21 si OP puede haber estado buscando una indexación negativa por su nombre. Aquí hay algunas maneras que conozco, algunos son riesgosos que otros utilicen:

mtcars[, -which(names(mtcars) == "carb")] #only works on a single column 
mtcars[, names(mtcars) != "carb"]   #only works on a single column 
mtcars[, !names(mtcars) %in% c("carb", "mpg")] 
mtcars[, -match(c("carb", "mpg"), names(mtcars))] 
mtcars2 <- mtcars; mtcars2$hp <- NULL   #lost column (risky) 


library(gdata) 
remove.vars(mtcars2, names=c("mpg", "carb"), info=TRUE) 

Yo generalmente uso:

mtcars[, !names(mtcars) %in% c("carb", "mpg")] 

porque siento que es seguro y eficaz.

+0

Y vea http://markmail.org/message/sdg7mopk4towqbm4 para el comentario de Brian Ripley sobre mtcars [, - c ("carb", "mpg")] –

Cuestiones relacionadas