关于 R 包 data.table 的问题:如何以节省内存的方式删除多个 data.table 列?
假设要删除的列名存储在向量 deleteCol 中。
In a data.frame, it is:
DF <- DF[deleteCol] <- list()
对于 data.table,我尝试了:
DT[, deleteCol, with=FALSE] <- list()
但这给了unused argument(s) (with = FALSE)
关于 R 包 data.table 的问题:如何以节省内存的方式删除多个 data.table 列?
假设要删除的列名存储在向量 deleteCol 中。
In a data.frame, it is:
DF <- DF[deleteCol] <- list()
对于 data.table,我尝试了:
DT[, deleteCol, with=FALSE] <- list()
但这给了unused argument(s) (with = FALSE)
好的,这里有几个选项。最后一个似乎正是你想要的......
x<-1:5
y<-1:5
z<-1:5
xy<-data.table(x,y,z)
NEWxy<-subset(xy, select = -c(x,y) ) #removes column x and y
和
id<-c("x","y")
newxy<-xy[, id, with=FALSE]
newxy #gives just x and y e.g.
# x y
#[1,] 1 1
#[2,] 2 2
#[3,] 3 3
#[4,] 4 4
#[5,] 5 5
最后是你真正想要的:
anotherxy<-xy[,id:=NULL,with=FALSE] # removes comuns x and y that are in id
# z
#[1,] 1
#[2,] 2
#[3,] 3
#[4,] 4
#[5,] 5