आर Internals से, 1.1 SEXPs:
... आर वस्तुओं अक्सर नोड्स कहा जाता है की बुनियादी निर्माण घटक ... नोड संरचना दोनों प्रकार के अपने पहले तीन क्षेत्रों एक 32-बिट spxinfo के रूप में है शीर्षलेख और फिर तीन पॉइंटर्स (गुणों और पिछले और अगले नोड को दोगुनी-लिंक्ड सूची में)
तो आर में वैक्टर को दोगुनी-लिंक्ड सूची के रूप में कार्यान्वित किया जाता है। और, यह भी प्रतीत होता है कि एकल-नोड लिंक्ड सूची से कम कोई डेटा संरचना नहीं है। दूसरों के द्वारा उल्लेख किया है
> a <- 4
> a[1]
4
:: इस से स्पष्ट है builtin.c
do_makevector
और do_makelist
है, और array.c
do_matrix
के लिए स्रोत है। इसके अलावा array.c
में allocMatrix
और memory.c
के लिए स्रोत शामिल है allocVector
के लिए स्रोत शामिल है।
जबकि मेरे सिर पर बहुत सी चीजें चल रही थीं, ऐसा लगता है कि एक मैट्रिक्स केवल दोगुनी-लिंक्ड सूचियों की दोगुनी-लिंक्ड सूची है। मुझे विश्वास है (हालांकि अनिश्चित है) कि पंक्ति और कॉलम नाम (जैसे डेटा फ्रेम में संग्रहीत) प्रत्येक सूची के 'गुण' में संग्रहीत हैं।
के जवाब "शक्तियों और कमजोरियों क्या" डेटा संरचनाओं को लागू करने की होगी कि (अपने सीमित ज्ञान से) दोगुना जुड़ा हुआ सूचियों है कि गतिशील स्मृति आवंटन में एक ताकत सरल है और आवश्यकता नहीं है एक संपूर्ण सरणी की प्रतिलिपि बनाने और पुन: आवंटित करने के ऊपरी हिस्से में, और कमजोरी यह है कि (सूची, कितने पॉइंटर्स सूची में हैं: सिर, पूंछ, मध्य, क्वार्टर इत्यादि) एक यादृच्छिक मूल्य v[99]
तक पहुंचने से कई लोगों के माध्यम से पुनरावृत्ति का ओवरहेड ले सकता है वांछित से पहले तत्व पाए जाते हैं।
क्या यह सही है?
क्या http://cran.r-project.org/doc/manuals/r-release/R-lang.html सहायता करता है? (जरूरी नहीं: यह कहता है कि कैसे डेटा संरचनाएं * परिभाषित * हैं, न कि उन्हें कैसे कार्यान्वित किया जाता है ...) –
'$ R_SRC_HOME/src/main /' में, 'do_makevector' के लिए 'buildin.c' में देखें, और' do_matrix' के लिए 'array.c' में देखें। data.frames केवल क्लास 'data.frame' की सूचियां हैं, इसलिए आपको केवल 'do_makelist' (' buildin.c' में भी) को देखने की आवश्यकता हो सकती है और फिर आर कोड आपके डेटा में' data.frame 'टाइप करके लौटाया जा सकता है। कंसोल। बड़ी तस्वीर के लिए, आर मैनुअल अधिक सहायक हो सकते हैं: एक @ बेनबॉल्कर से जुड़ा हुआ है और ["आर-इंटर्नल्स"] (http://cran.r-project.org/doc/manuals/R-ints एचटीएमएल) मैनुअल। –
@ जोशो'ब्रायन जो एक उत्तर होना चाहिए, एक टिप्पणी नहीं (अग्रिम में +1)। –