data.table
डेटा के सबसेट के लिए .SD और .SDcols का उपयोग करना
खोज…
परिचय
.SD
में उपलब्ध है j
के DT[i,j,by]
प्रत्येक के लिए D अता की एस ubset पर कब्जा, by
, फिल्टर जीवित समूह i
। .SDcols
एक सहायक है। आधिकारिक डॉक्स के लिए टाइप ?`special-symbols`
।
टिप्पणियों
एक अनुस्मारक: DT[where, select|update|do, by]
सिंटैक्स का उपयोग डेटा के स्तंभ के साथ काम करने के लिए किया जाता है।
- "जहां" भाग
i
तर्क है - "सेलेक्ट | अपडेट | डू" पार्ट
j
तर्क है
इन दो तर्कों को आमतौर पर नाम के बजाय स्थिति से पारित किया जाता है।
.SD और .SDcols का उपयोग करना
.SD
.SD
प्रत्येक समूह के लिए data.table
के सबसेट को संदर्भित करता है, जिसमें उपयोग किए by
सभी कॉलमों को छोड़कर।
.SD
के साथ-साथ lapply
का उपयोग किसी भी फ़ंक्शन को किसी भी फ़ंक्शन को किसी data.table
में समूह में लागू करने के लिए किया जा सकता है
हम उसी अंतर्निहित डेटासेट, mtcars
का उपयोग करना जारी mtcars
:
mtcars = data.table(mtcars) # Let's not include rownames to keep things simpler
सिलेंडर, की संख्या से डेटासेट में सभी स्तंभों के मतलब cyl
:
mtcars[ , lapply(.SD, mean), by = cyl]
# cyl mpg disp hp drat wt qsec vs am gear carb
#1: 6 19.74286 183.3143 122.28571 3.585714 3.117143 17.97714 0.5714286 0.4285714 3.857143 3.428571
#2: 4 26.66364 105.1364 82.63636 4.070909 2.285727 19.13727 0.9090909 0.7272727 4.090909 1.545455
#3: 8 15.10000 353.1000 209.21429 3.229286 3.999214 16.77214 0.0000000 0.1428571 3.285714 3.500000
इसके अलावा cyl
, वहाँ इस तरह के रूप डेटासेट में अन्य स्पष्ट स्तंभ हैं vs
, am
, gear
और carb
। यह वास्तव में इन स्तंभों का mean
लेने के लिए समझ में नहीं आता है। तो चलिए इन कॉलम को बाहर करते हैं। यह वह जगह है जहाँ .SDcols
चित्र में आते हैं।
.SDcols
.SDcols
.SD
में शामिल data.table
के कॉलम को निर्दिष्ट करता है।
गियर की संख्या से डाटासेट में सभी स्तंभों (निरंतर कॉलम) का मतलब gear
, और सिलेंडर, की संख्या cyl
, द्वारा आयोजित gear
और cyl
:
# All the continuous variables in the dataset
cols_chosen <- c("mpg", "disp", "hp", "drat", "wt", "qsec")
mtcars[order(gear, cyl), lapply(.SD, mean), by = .(gear, cyl), .SDcols = cols_chosen]
# gear cyl mpg disp hp drat wt qsec
#1: 3 4 21.500 120.1000 97.0000 3.700000 2.465000 20.0100
#2: 3 6 19.750 241.5000 107.5000 2.920000 3.337500 19.8300
#3: 3 8 15.050 357.6167 194.1667 3.120833 4.104083 17.1425
#4: 4 4 26.925 102.6250 76.0000 4.110000 2.378125 19.6125
#5: 4 6 19.750 163.8000 116.5000 3.910000 3.093750 17.6700
#6: 5 4 28.200 107.7000 102.0000 4.100000 1.826500 16.8000
#7: 5 6 19.700 145.0000 175.0000 3.620000 2.770000 15.5000
#8: 5 8 15.400 326.0000 299.5000 3.880000 3.370000 14.5500
शायद हम समूहों द्वारा mean
गणना नहीं करना चाहते हैं। डाटासेट में सभी कारों के लिए माध्य की गणना करने के लिए, हम चर by
निर्दिष्ट नहीं करते हैं।
mtcars[ , lapply(.SD, mean), .SDcols = cols_chosen]
# mpg disp hp drat wt qsec
#1: 20.09062 230.7219 146.6875 3.596563 3.21725 17.84875
नोट: यह पहले से cols_chosen
को परिभाषित करने के लिए आवश्यक नहीं है। .SDcols
सीधे कॉलम नाम ले सकते हैं