我有一些数据:
val.txt
我想保留一些列名称的向量:
library(data.table)
data(mtcars)
setDT(mtcars)
除了some_keep <- c('mpg','cyl')
more_keep <- c('disp','hp')
和some_keep
中指定的列之外,我想要删除每一列。
我知道我可以more_keep
使用setdiff
:
names
但这似乎不太可读。我知道除了这些之外选择,我可以使用mtcars[, ( setdiff(names(mtcars),c(some_keep,more_keep)) ) := NULL] # this works
:
with=FALSE
但是这不起作用:
mtcars[,-c(some_keep,more_keep), with=FALSE] # returns the columns I want to drop
这些也没有:
mtcars[,(-c(some_keep,more_keep)):=NULL] # invalid argument to unary operator
是否有一个更简单的mtcars[,-c(some_keep,more_keep)] <- NULL # invalid argument to unary operator
mtcars[,-c(some_keep,more_keep), with=FALSE] <- NULL # unused argument (with = FALSE)
表达式,不需要两次写表名?
请注意,seemingly duplicate question这个{{3}}实际上是在询问选择(不删除)所有指定内容,但如上所示。