简体   繁体   中英

R: how to delete columns in a data.table?

Question about the R package data.table: how are multiple data.table columns removed in a memory-efficient way?

Suppose the column names to be deleted are stored in the vector deleteCol.

In a data.frame, it is:
DF <- DF[deleteCol] <- list()

For data.table, I tried:

DT[, deleteCol, with=FALSE] <- list()

but this gave unused argument(s) (with = FALSE)

ok here are a few options. The last one seems exactly what you want...

 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

and

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

and finally what you really want:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM