जवाबों:
Data.table के संस्करणों के लिए >= 1.9.8
, निम्नलिखित सभी काम:
library(data.table)
dt <- data.table(a = 1, b = 2, c = 3)
# select single column by index
dt[, 2]
# b
# 1: 2
# select multiple columns by index
dt[, 2:3]
# b c
# 1: 2 3
# select single column by name
dt[, "a"]
# a
# 1: 1
# select multiple columns by name
dt[, c("a", "b")]
# a b
# 1: 1 2
Data.table के संस्करणों के < 1.9.8
लिए (जिसके लिए संख्यात्मक स्तंभ चयन के उपयोग की आवश्यकता होती है with = FALSE
), इस उत्तर के पिछले संस्करण को देखें । V1.9.8 पर समाचार भी देखें , संभावित रूप से ब्रेकिंग चैनल, बिंदु 3।
DT[,list(b:c)
, जैसा कि मैंने डेटा तालिका में स्तंभों को सीधे रूप में बदलना सुविधाजनक पाया, जैसे मैं कर सकता हूं DT[,list(1/b,2*c)]
, लेकिन यह साथ काम नहीं करता है।
with=FALSE
इस मामले में अनावश्यक बना देगा : github.com/Rdatatable/data.table/issues/…
data.frame
उपयोग करने के लिए कोई संगत तरीका नहीं है with=FALSE
। हालांकि, 3 के बारे में हफ्ते पहले के रूप में, के विकास के संस्करण data.table की तरह कॉल करने के लिए संशोधित किया गया है dt[, 2]
, dt[, 2:3]
, dt[, "b"]
, और dt[, c("b", "c")]
एक ही व्यवहार करते हैं जैसा कि वे साथ में क्या data.frame
रों बिना स्पष्ट रूप से सेट करने के लिए with=FALSE
। यह ज़बरदस्त है! परिवर्तन का वर्णन करते हुए NEWS प्रविष्टि सहित विशेष प्रतिबद्धता के लिए यहाँ देखें ।
यह थोड़ा वर्बोज़ है, लेकिन मैंने छिपे हुए .SD
चर का उपयोग करने के लिए उपयोग किया है ।
b<-data.table(a=1,b=2,c=3,d=4)
b[,.SD,.SDcols=c(1:2)]
यह एक परेशानी का एक सा है, लेकिन आप अन्य data.table सुविधाओं (मुझे नहीं लगता) पर बाहर खोना नहीं है, तो आप अभी भी अन्य महत्वपूर्ण कार्यों जैसे कि तालिकाओं आदि का उपयोग करने में सक्षम होना चाहिए।
V1.10.2 के बाद से, आप भी उपयोग कर सकते हैं ..
dt <- data.table(a=1:2, b=2:3, c=3:4)
keep_cols = c("a", "c")
dt[, ..keep_cols]
dt[, !..keep_cols]
और dt[, -..keep_cols]
उम्मीद के मुताबिक काम करता है!
@, इस समाधान को इंगित करने के लिए आपका बहुत-बहुत धन्यवाद। यह मेरे लिए बहुत अच्छा काम करता है।
मैं मुद्रण से और ऊपर के उदाहरण से सिर्फ एक स्तंभ को बाहर करने का एक तरीका ढूंढ रहा था। दूसरे कॉलम को बाहर करने के लिए आप कुछ इस तरह से कर सकते हैं
library(data.table)
dt <- data.table(a=1:2, b=2:3, c=3:4)
dt[,.SD,.SDcols=-2]
dt[,.SD,.SDcols=c(1,3)]
dt[,"a"]
औरdt[,"a", with=FALSE]
देखें कि वास्तव में यह एक सहायक विकल्प क्या है।