2012-05-14 4 views
5

R 패키지에 관한 질문 data.table : 메모리 효율적인 방법으로 여러 data.table 열을 제거하는 방법은 무엇입니까?R : data.table에서 colum을 삭제하는 방법?

삭제할 열 이름이 벡터 deleteCol에 저장된다고 가정하십시오.

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

을하지만이 unused argument(s) (with = FALSE)

감사를 주었다 data.table를 들어

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

, 나는 시도!

답변

5

여기에 몇 가지 옵션이 있습니다. 마지막 하나는 ... 당신이 원하는 것을 정확히

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 

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 

보인다 그리고 마지막으로 당신이 정말로 원하는 : 트릭을 수행

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 
+0

! 감사! –

+4

+1. 그래도 'anotherxy <-'는 필요 없습니다. ': ='는 참조로'xy'를 수정합니다. 수정 된 복사본을 원한다면 명시 적으로'copy() '해야한다. 'anotherxy <- copy (xy) [, id : = NULL, = FALSE]'와 같은 형식을 사용합니다. –

관련 문제