खोज…


टिप्पणियों

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

इसलिए परिवर्तन बाद के मामले में प्रचारित नहीं करते हैं।



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