यदि आप संदर्भ द्वारा कॉलम को हटाना चाहते हैं और इससे जुड़ी आंतरिक नकल से बचते हैं data.framesतो आप data.tableपैकेज और फ़ंक्शन का उपयोग कर सकते हैं:=
आप :=ऑपरेटर के बाएं हाथ की ओर , और NULLRHS के रूप में एक चरित्र वेक्टर नाम पास कर सकते हैं ।
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]
आप के लिए कॉल बाहर चरित्र वेक्टर के रूप में के रूप में नाम पूर्वपरिभाषित चाहते हैं [, में ऑब्जेक्ट का नाम लपेट ()या {}मजबूर करने के लिए एलएचएस बुला दायरे में मूल्यांकन किया जाना के दायरे के भीतर एक नाम के रूप में नहीं 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), और इसके बजाय, हमें इन जटिल कामों को करने की आवश्यकता है?