可能重复:
删除列R数据框
假设我有一个包含c1,c2,c3列的数据框.
我想列出c1和c2.我怎么做?
我试过了:
head(data[column!="c3"])
head(data)[,2]
head(data[!"c3"])
Run Code Online (Sandbox Code Playgroud)
Tyl*_*ker 98
除了tcash21的数字索引,如果OP可能一直在寻找名称的负索引.以下是我所知道的一些方法,其中一些方法比其他方式有用:
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)
Run Code Online (Sandbox Code Playgroud)
一般我用:
mtcars[, !names(mtcars) %in% c("carb", "mpg")]
Run Code Online (Sandbox Code Playgroud)
因为我觉得它安全有效.
tca*_*h21 65
您只需索引并使用负号删除该列:
data[,-3]
Run Code Online (Sandbox Code Playgroud)
或者您只能列出前两列:
data[,c("c1", "c2")]
data[,1:2]
Run Code Online (Sandbox Code Playgroud)
不要忘记逗号和引用数据框的工作方式如下:data [row,column]