참조로 열을 제거하고 연관된 내부 복사를 피 data.frames
하려면 data.table
패키지와 함수를 사용할 수 있습니다:=
문자형 벡터 이름을 :=
연산자 의 왼쪽 과 NULL
RHS로 전달할 수 있습니다 .
library(data.table)
df <- data.frame(a=1:10, b=1:10, c=1:10, d=1:10)
DT <- data.table(df)
# or more simply DT <- data.table(a=1:10, b=1:10, c=1:10, d=1:10) #
DT[, c('a','b') := NULL]
호출 외부의 문자 벡터로 이름을 미리 정의하려면 [
객체의 이름을 래핑 ()
하거나 {}
LHS가 범위 내의 이름이 아닌 호출 범위에서 평가되도록합니다 DT
.
del <- c('a','b')
DT <- data.table(a=1:10, b=1:10, c=1:10, d=1:10)
DT[, (del) := NULL]
DT <- <- data.table(a=1:10, b=1:10, c=1:10, d=1:10)
DT[, {del} := NULL]
# force or `c` would also work.
당신은 또한 사용할 수 set
의 오버 헤드를 피할 수있는 [.data.table
, 또한 작동 data.frames
!
df <- data.frame(a=1:10, b=1:10, c=1:10, d=1:10)
DT <- data.table(df)
# drop `a` from df (no copying involved)
set(df, j = 'a', value = NULL)
# drop `b` from DT (no copying involved)
set(DT, j = 'b', value = NULL)
df#drop(var_name)
대신 복잡한 해결 방법이 필요합니까?