web-dev-qa-db-fra.com

Liste toute la colonne sauf une dans R

Duplicate possible:
Drop Columns R Frame

Disons que j'ai un cadre de données avec la colonne c1, c2, c3.

Je veux juste énumérer c1 et c2. Comment je fais ça?

J'ai essayé:

head(data[column!="c3"])
head(data)[,2]
head(data[!"c3"])
42
mythicalprogrammer

Vous pouvez indexer et utiliser un signe négatif pour supprimer la 3ème colonne:

data[,-3]

Ou vous pouvez lister uniquement les 2 premières colonnes:

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

N'oubliez pas la virgule et le référencement des cadres de données fonctionne comme suit: data [ligne, colonne]

62
tcash21

En plus de l'indexation numérique de tcash21 si OP cherchait peut-être une indexation négative par nom. Voici quelques moyens que je connais, certains sont risqués que d'autres à utiliser:

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) 

Généralement j'utilise:

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

parce que je pense que c'est sûr et efficace.

92
Tyler Rinker