आर

2013-08-01 6 views
29

में डेटा.फ्रेम और डेटाटेबल के बीच व्यावहारिक अंतर क्या है मेरे स्पष्ट प्रश्न में मैंने data.frame और data.table के बीच भ्रम का प्रदर्शन किया। माना जाता है कि, मुझे एहसास नहीं हुआ कि एक भेद था।आर

इसलिए मैंने प्रत्येक के लिए व्यावहारिक, रोजमर्रा की शर्तों में क्या अंतर है, क्या अंतर है, इसके लिए क्या उपयोग किया जाता है और इसके लिए प्रत्येक का उपयोग उनके उचित उपयोग के लिए मार्गदर्शन करने में मदद करेगा?

+2

-1। प्रश्न बहुत व्यापक है। –

+0

@AnandaMahto, धन्यवाद, लेकिन यह एक प्रतिभा के लिए एक व्यापक और संक्षिप्त उत्तर के साथ आने का अवसर भी है ... :-) –

+12

@ जस्टिन: लिंक सहायक थे। मैं उनसे अनजान था। शायद आप रवैये के बिना सूचित कर सकते हैं। @ Ferdinand.kraft: आपकी दूसरी टिप्पणी बिल्कुल मेरी स्थिति का सारांश देती है। बेशक मैं सहायता पृष्ठों और ट्यूटोरियल पढ़ सकता हूं, लेकिन उनमें से कई भाषा के कामकाजी ज्ञान को मानते हैं और अनुभवी के लिए तकनीकी मैनुअल की तरह पढ़ते हैं। निश्चित रूप से हमारे बीच कोई ऐसा व्यक्ति है जो वर्षों के लिए 'data.frame' और 'data.table' दोनों के साथ काम करने से सबसे व्यावहारिक भागों को दूर कर सकता है। मैं काम से बचने के लिए नहीं देख रहा हूं, अनुभवी प्रोग्रामर कम अनुभव के साथ हमें क्या पास कर सकते हैं? – remarkableearth

उत्तर

7

वे समान हैं। डेटा फ्रेम समान लंबाई के वैक्टर की सूचियां हैं जबकि डेटा टेबल (data.table) डेटा फ्रेम की विरासत है। इसलिए डेटा टेबल डेटा फ्रेम होते हैं लेकिन डेटा फ्रेम आवश्यक रूप से डेटा टेबल नहीं होते हैं। डेटा टेबल पैकेज और फ़ंक्शन को इंडेक्सिंग की गति बढ़ाने, आदेशित करने, असाइनमेंट, ग्रुपिंग और लिस्टिंग कॉलम (इत्यादि) को बढ़ाने के लिए लिखा गया था।

अधिक जानकारी के लिए http://datatable.r-forge.r-project.org/datatable-intro.pdf देखें।

+2

वे केवल उपस्थिति में समान हैं। –

+0

@Ellis, लिंक के लिए धन्यवाद। – remarkableearth

+0

@ Ferdinand.kraft वे समारोह में _similar_ नहीं हैं? ;) लेकिन मैं मानता हूं कि उनके पास कई अंतर –

47

हालांकि यह एक व्यापक सवाल है, अगर कोई R पर नया है तो यह भ्रमित हो सकता है और भेद खो सकता है।

सभी data.table एस data.frame एस भी हैं। संक्षेप में बोलते हुए, आप डेटा सुविधाओं को डेटा सुविधाओं के रूप में अतिरिक्त सुविधाओं के साथ सोच सकते हैं।

data.frame आधार R का हिस्सा है।

data.table एक पैकेज है जो data.frames बढ़ाता है। इसकी सबसे उल्लेखनीय विशेषताएं स्पीड और क्लीनर सिंटैक्स हैं।

हालांकि, यह वाक्यविन्यास चीनी डेटा आर फ्रेम के लिए मानक आर वाक्यविन्यास से अलग है, जबकि अनियंत्रित आंखों के लिए एक नज़र में अंतर करने के लिए कठिन होना मुश्किल है। इसलिए, यदि आप एक कोड स्निपेट पढ़ते हैं और यह इंगित करने के लिए कोई अन्य संदर्भ नहीं है कि आप डेटा.tables के साथ काम कर रहे हैं और डेटा को डेटा पर लागू करने का प्रयास करें। फ्रेम यह अप्रत्याशित परिणाम विफल हो सकता है या उत्पन्न कर सकता है। वह सब कहा जा रहा है के साथ

(एक स्पष्ट सस्ता है कि आप d.t के साथ काम कर रहे, library/require कॉल के अलावा असाइनमेंट ऑपरेटर := जो डीटी के लिए अद्वितीय है की उपस्थिति है), मुझे लगता है कि यह मुश्किल है data.frame की कमियों का अनुभव किए बिना वास्तव में data.table की सुंदरता की सराहना करते हैं। (उदाहरण के लिए, @ eddi के उत्तर के पहले 3 बुलेट बिंदु देखें)। दूसरे शब्दों में, मैं बहुत पहले data.frames के साथ काम करने और कुशलतापूर्वक उपयोग करने के बारे में सीखने का सुझाव दूंगा, फिर data.table पर जाएं।

26

जो मन में आ कुछ दिन जीवन के लिए मेरा दिन में मतभेद (किसी विशेष क्रम में):

  • में अधिक से अधिक data.table नाम निर्दिष्ट करने (अनाड़ी वाक्य रचना और मूर्खतापूर्ण गलतियों के लिए अग्रणी) नहीं होने भाव (दूसरा पहलू पर मैं कभी कभी नामों में से टैब-पूरा होने याद आती है)
  • बहुत तेजी से और बहुत by संचालन सहज
  • कोई और अधिक पागलपन df टाइपिंग, भूल कितनी बड़ी df था के बाद Ctrl-C मार (यह भी लगभग करने के लिए अग्रणी कभी नहीँ का उपयोग कर head)
  • तेजी से और बेहतर फ़ाइल fread
  • पैकेज भी अन्य उपयोगिता कई कार्य करने की, %between% या rbindlist जीवन को बेहतर
  • बाकी
  • तेजी से सब कुछ है, क्योंकि data.frame संचालन का एक बहुत नकल बनाने के इस तरह प्रदान करता है के साथ पढ़ने पूरी चीज अनावश्यक रूप से
+0

तीसरे कारण के लिए अपरिवर्तित हैं ... – eflores89