data.table
Data.table बनाना
खोज…
टिप्पणियों
Data.table, बेस R से डेटा.फ्रेम क्लास का एक एन्हांस्ड वर्जन है। जैसे कि, इसकी class()
विशेषता वेक्टर "data.table" "data.frame"
और फ़ंक्शन जो डेटा पर काम करते हैं। data.table के साथ काम करें। डेटाटैब को बनाने, लोड करने या ले जाने के कई तरीके हैं, जैसा कि यहां देखा गया है।
एक डेटा.फ्रेम को सम्मिलित करें
Data.table के रूप में data.frame की प्रतिलिपि बनाने के लिए, as.data.table
या data.table
उपयोग करें:
DF = data.frame(x = letters[1:5], y = 1:5, z = (1:5) > 3)
DT <- as.data.table(DF)
# or
DT <- data.table(DF)
यह शायद ही कभी आवश्यक है। एक अपवाद तब होता है जब अंतर्निहित डेटासेट जैसे mtcars
का उपयोग किया mtcars
, जिसे कॉपी किया जाना चाहिए क्योंकि वे इन-प्लेस संशोधित नहीं किए जा सकते हैं।
Data.table () के साथ बनाएँ
एक ही नाम का एक निर्माता है:
DT <- data.table(
x = letters[1:5],
y = 1:5,
z = (1:5) > 3
)
# x y z
# 1: a 1 FALSE
# 2: b 2 FALSE
# 3: c 3 FALSE
# 4: d 4 TRUE
# 5: e 5 TRUE
data.frame
विपरीत, data.table
डिफ़ॉल्ट रूप से कारकों के लिए ज़बरदस्ती नहीं करेगा:
sapply(DT, class)
# x y z
# "character" "integer" "logical"
फ़्रेड के साथ पढ़ें ()
हम एक पाठ फ़ाइल से पढ़ सकते हैं:
dt <- fread("my_file.csv")
विपरीत read.csv
, fread
डिफ़ॉल्ट रूप से कारक के रूप में नहीं तारों के रूप में तार, पढ़ा जाएगा।
अधिक उदाहरणों के लिए [[ fread
पर विषय] [need_a_link] देखें।
SetDT () के साथ एक data.frame संशोधित करें
दक्षता के लिए, data.table, data.table-in-place बनाने के लिए data.frame या सूची को बदलने का एक तरीका प्रदान करता है:
# example data.frame
DF = data.frame(x = letters[1:5], y = 1:5, z = (1:5) > 3)
# modification
setDT(DF)
ध्यान दें कि हम <-
परिणाम को असाइन नहीं करते हैं, क्योंकि ऑब्जेक्ट DF
को इन-प्लेस में संशोधित किया गया है।
Data.frame की वर्ग विशेषताओं को बरकरार रखा जाएगा:
sapply(DF, class)
# x y z
# "factor" "integer" "logical"
कॉपी के साथ एक और डेटा कॉपी करें। ()
# example data
DT1 = data.table(x = letters[1:2], y = 1:2, z = (1:2) > 3)
जिस तरह से data.tables में हेरफेर किया जाता है, उसके कारण DT2 <- DT1
एक प्रतिलिपि नहीं बनाएगा। यही है, बाद में DT2
के कॉलम या अन्य विशेषताओं में संशोधन DT1
को भी प्रभावित करेगा। जब आप एक वास्तविक प्रतिलिपि चाहते हैं, का उपयोग करें
DT2 = copy(DT1)
अंतर देखने के लिए, यहां एक प्रतिलिपि के बिना क्या होता है:
DT2 <- DT1
DT2[, w := 1:2]
DT1
# x y z w
# 1: a 1 FALSE 1
# 2: b 2 FALSE 2
DT2
# x y z w
# 1: a 1 FALSE 1
# 2: b 2 FALSE 2
और एक प्रति के साथ:
DT2 <- copy(DT1)
DT2[, w := 1:2]
DT1
# x y z
# 1: a 1 FALSE
# 2: b 2 FALSE
DT2
# x y z w
# 1: a 1 FALSE 1
# 2: b 2 FALSE 2
इसलिए परिवर्तन बाद के मामले में प्रचारित नहीं करते हैं।