<-

2015-10-01 23 views
9

का उपयोग किए बिना सबसेट डेटा तालिका मैं डेटा तालिका की कुछ पंक्तियों को सब्सक्राइब करना चाहता हूं। इस तरह:<-

# load data 
    data("mtcars") 

# convert to data table 
    setDT(mtcars,keep.rownames = T) 

# Subset data 
    mtcars <- mtcars[like(rn,"Mer"),] ; or 
    mtcars <- mtcars[mpg > 20,] 

हालांकि, मैं एक बहुत बड़ा डेटा सेट के साथ काम कर रहा हूँ और मैं <- का उपयोग, जो स्मृति कुशल नहीं है, क्योंकि यह डेटा की एक प्रतिलिपि बनाता बचना चाहते थे।

क्या यह सही है? क्या <- के बिना फ़िल्टर किए गए डेटा को अपडेट करना संभव है?

+0

आप एक चर को निर्दिष्ट किए बिना डेटा कैसे अपडेट कर सकते हैं? अंत में आपके सभी प्रसंस्करण के बाद परिवर्तनों को एक चर के लिए असाइन किया जाना चाहिए। –

+0

यदि आप इसे स्टोर नहीं करना चाहते हैं, तो आप डेटा को सब्सक्राइब क्यों करना चाहते हैं? क्या आपको केवल अस्थायी रूप से इसकी आवश्यकता है? या आपको केवल सबसेट की आवश्यकता है और मूल को छोड़ना चाहते हैं, और आप ऐसा करने के लिए एक कुशल तरीका ढूंढ रहे हैं? – RHA

+0

मुझे लगता है कि आप असंभव के लिए पूछ रहे हैं। हालांकि यह जीएच पर एक दिलचस्प एफआर हो सकता है। लेकिन मेरा मानना ​​है कि ऐसी चीज को लागू करने के लिए इसे विकास के * बहुत * की आवश्यकता होगी। –

उत्तर

7

आप जो पूछ रहे हैं वह संदर्भ पंक्तियों को हटा देगा।

यह अभी तक संभव नहीं है, लेकिन #635 के लिए एफआर है।

तब तक आप (इन-स्मृति) कॉपी करने के लिए अपने data.table सबसेट की जरूरत है, प्रतिलिपि <- (या =) जब सबसेट (i आर्ग) के साथ संयुक्त है द्वारा किया जाता है तो अब के लिए आप से बचने नहीं कर सकते।

यह किसी भी तरह की मदद से आप आपरेशन पूर्वपरिभाषित करने और यह मूल्यांकन है देरी, यह भी पूर्वनिर्धारित वस्तुओं का पुन: उपयोग कई बार भाषा वस्तुओं पर काम कर सकते हैं करेंगे:

mtcars_sub <- quote(mtcars[like(rn,"Mer")]) 
mtcars_sub2 <- quote(eval(mtcars_sub)[mpg > 20]) 
eval(mtcars_sub2) 
#   rn mpg cyl disp hp drat wt qsec vs am gear carb 
# 1: Merc 240D 24.4 4 146.7 62 3.69 3.19 20.0 1 0 4 2 
# 2: Merc 230 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2 

Btw। डेटाटेबल को सब्सक्राइब करते समय आपको dt[x==1,] जैसे मध्य कॉमा का उपयोग करने की आवश्यकता नहीं है, तो आप dt[x==1] का उपयोग कर सकते हैं।

संबंधित मुद्दे