2012-10-12 14 views

risposta

43

Si può solo indice e utilizzare un segno negativo a cadere quella colonna:

data[,-3] 

Oppure è possibile elencare solo le prime 2 colonne:

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

Non dimenticare la virgola e le cornici di dati di riferimento funzionano in questo modo: dati [riga, colonna]

+0

Per quanto riguarda l'ultima frase, non è effettivamente necessaria la virgola quando si lavora con i frame di dati, dal momento che sono elenchi. –

+0

Certo, ma se hai intenzione di fare quel commento, almeno mostra un esempio di come non usare una virgola aka accedere agli elenchi. – tcash21

+0

per esempio 'x [1,2]' = 'x [[2]] [[1]]' – tcash21

67

Oltre all'indicizzazione numerica di tcash21 se OP potrebbe aver cercato indicizzazione negativa per nome. Ecco alcuni modi che conosco, alcuni sono rischiosi di altri da usare:

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) 

genere io uso:

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

perché sento che è sicuro ed efficiente.

+0

E vedi http://markmail.org/message/sdg7mopk4towqbm4 per il commento di Brian Ripley su mtcars [, - c ("carb", "mpg")] –

Problemi correlati