खोज…


टिप्पणियों

आधिकारिक संदर्भ , "संदर्भ शब्दार्थ" , इस विषय का सबसे अच्छा परिचय है।

एक अनुस्मारक: DT[where, select|update|do, by] सिंटैक्स का उपयोग डेटा के स्तंभ के साथ काम करने के लिए किया जाता है।

  • "जहां" भाग i तर्क है
  • "सेलेक्ट | अपडेट | डू" पार्ट j तर्क है

इन दो तर्कों को आमतौर पर नाम के बजाय स्थिति से पारित किया जाता है।

कॉलम के सभी संशोधन j में किए जा सकते हैं। इसके अतिरिक्त, set फ़ंक्शन इस उपयोग के लिए उपलब्ध है।

मूल्यों का संपादन

# example data
DT = as.data.table(mtcars, keep.rownames = TRUE)

एक कॉलम का संपादन

नए कॉलम बनाने या मौजूदा वाले को संशोधित करने के लिए j अंदर := ऑपरेटर का उपयोग करें:

DT[, mpg_sq := mpg^2]

पंक्तियों के सबसेट पर संपादन

पंक्तियों को "जहाँ संपादन किया जाना चाहिए" को समाप्त करने के लिए i तर्क का उपयोग करें:

DT[1:3, newvar := "Hello"]

जैसा कि डेटा.फ्रेम में है, हम पंक्ति संख्याओं या तार्किक परीक्षणों का उपयोग करके कम कर सकते हैं। यह भी [ "शामिल हों" में उपयोग करना संभव है i जब संशोधित] [need_a_link]।

एक कॉलम हटाना

NULL सेटिंग करके कॉलम निकालें:

DT[, mpg_sq := NULL]

ध्यान दें कि हम नहीं <- परिणाम असाइन करते हैं, के बाद से DT यथा-स्थान संशोधित किया गया है।

कई स्तंभों का संपादन

:= ऑपरेटर के बहुभिन्नरूपी प्रारूप का उपयोग करके कई कॉलम जोड़ें:

DT[, `:=`(mpg_sq = mpg^2, wt_sqrt = sqrt(wt))]
# or 
DT[, c("mpg_sq", "wt_sqrt") := .(mpg^2, sqrt(wt))]

.() सिंटैक्स का उपयोग तब किया जाता है जब LHS := RHS के दाहिने-हाथ LHS := RHS कॉलम की एक सूची होती है।

कई क्रमिक रूप से निर्भर स्तंभों का संपादन

यदि स्तंभ निर्भर हैं और उन्हें अनुक्रम में परिभाषित किया जाना चाहिए, तो ऐसा करने के कुछ तरीके हैं:

DT[, c("mpg_sq", "mpg2_hp") := .(temp1 <- mpg^2, temp1/hp)]
# or
DT[, c("mpg_sq", "mpg2_hp") := {temp1 = mpg^2; .(temp1, temp1/hp)}]

स्तंभों को गतिशील रूप से निर्धारित नामों से संपादित करना

गतिशील रूप से निर्धारित कॉलम नामों के लिए, कोष्ठक का उपयोग करें:

vn = "mpg_sq"
DT[, (vn) := mpg^2]

set का उपयोग करना

ओवरहेड में एक छोटी सी कमी के लिए कॉलम को set के साथ भी संशोधित किया जा सकता है, हालांकि यह बहुत कम आवश्यक है:

set(DT, j = "hp_over_wt", v = mtcars$hp/mtcars$wt)

स्तंभों को पुन: व्यवस्थित करना

# example data
DT = as.data.table(mtcars, keep.rownames = TRUE)

स्तंभों के क्रम को पुनर्व्यवस्थित करने के लिए, setcolorder उपयोग setcolorder । उदाहरण के लिए, उन्हें उल्टा करना

setcolorder(DT, rev(names(DT)))

यह प्रदर्शन के संदर्भ में लगभग कुछ भी नहीं खर्च करता है, क्योंकि यह data.table में कॉलम पॉइंटर्स की सूची को अनुमति दे रहा है।

स्तंभों का नाम बदल रहा है

# example data
DT = as.data.table(mtcars, keep.rownames = TRUE)

एक स्तंभ का नाम बदलने के लिए (जबकि उसके डेटा को समान रखते हुए), एक नए नाम के साथ स्तंभ में डेटा को कॉपी करने और पुराने को हटाने की कोई आवश्यकता नहीं है। इसके बजाय, हम उपयोग कर सकते हैं

setnames(DT, "mpg_sq", "mpq_squared")

संदर्भ द्वारा मूल कॉलम को संशोधित करने के लिए।

कारक स्तरों और अन्य कॉलम विशेषताओं को संशोधित करना

# example data
DT = data.table(iris)

संदर्भ द्वारा कारक स्तरों को संशोधित करने के लिए, setattr उपयोग setattr :

setattr(DT$Species, "levels", c("set", "ver", "vir")
# or
DT[, setattr(Species, "levels", c("set", "ver", "vir"))]

दूसरा विकल्प परिणाम को स्क्रीन पर प्रिंट कर सकता है।

setattr साथ, हम levels(x) <- lvls करते समय आमतौर पर होने वाली कॉपी से बचते हैं, लेकिन यह कुछ चेक को छोड़ देगा, इसलिए स्तरों के वैध वेक्टर को असाइन करने के लिए सावधानी बरतना महत्वपूर्ण है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow