2012-06-25 17 views
5

क्या मैटलैब संरचना प्रकार के बराबर कोई आर प्रकार है?आर MATLAB संरचना के बराबर है?

मेरे पास कुछ नामित वैक्टर हैं और मैं उन्हें डेटा फ्रेम में स्टोर करने का प्रयास करता हूं। आदर्श रूप से, मैं बस किसी ऑब्जेक्ट के एक तत्व तक पहुंचता हूं और यह नामित वैक्टर (जैसे मैटलैब में एक संरचना) वापस कर देगा। मुझे लगता है कि डेटा फ्रेम का उपयोग करना सही बात नहीं है क्योंकि यह नामित वैक्टरों के मूल्यों को स्टोर कर सकता है लेकिन नाम नहीं जब वे एक वेक्टर से दूसरे में भिन्न होते हैं।

अधिक आम तौर पर, आर में एक ही में विभिन्न वस्तुओं का एक गुच्छा स्टोर करना संभव है?

संपादित: जैसा कि Joran कहा मुझे लगता है कि list काम करता है।

l = list() 
l$vec1 = namedVector1 
l$vec2 = namedVector2 
... 

अगर मैं नामों की एक सूची है

name1 = 'vec1' 
name2 = 'vec2' 

वहाँ दुभाषिया को समझने के लिए कि जब मैं name1 की तरह एक चर नाम का उपयोग करें, मैं चर नाम के लिए, लेकिन की बात नहीं कर रहा हूँ के लिए किसी भी तरह से है इसकी सामग्री? मैंने get(name1) की कोशिश की है लेकिन यह काम नहीं करता है।

+3

मुझे यकीन है कि मैटलैब में आप वास्तव में क्या बात कर रहे हैं, लेकिन आर में आपके विकल्प मूल रूप से हैं: वैक्टर, सूचियां, मैट्रिस, डेटा फ्रेम, या (यदि आप फैंसी प्राप्त करना चाहते हैं) वातावरण। मेरा अनुमान है कि अगर आप एक सूची चाहते हैं। – joran

+0

@ जोरन: [मटकाब संरचना] (http://www.mathworks.nl/help/techdoc/ref/struct.html) – Junuxx

+0

मुझे यकीन है कि @ जोरन सही है (एक 'सूची' जो आप चाहते हैं) के बारे में, लेकिन मैं थोड़ा सा उलझन में हूं "लेकिन नाम नहीं जब एक वेक्टर से दूसरे में भिन्न होता है"। आप किस नाम का जिक्र कर रहे हैं? –

उत्तर

5

मैं अब भी तुम क्या करने की कोशिश कर रहे किस बारे में गलत हो सकता है, लेकिन मुझे लगता है कि यह सबसे अच्छा है कि आप नाम से प्रत्येक सूची तत्व तक पहुँचने के संदर्भ में प्राप्त करने के लिए जा रहे हैं:

l <- list(a= 1:3,b = 1:10) 
> ind <- "a" 
> l[[ind]] 
[1] 1 2 3 

अर्थात्, आपको स्पष्ट रूप से [[ का उपयोग करना होगा।

+0

और एफडब्ल्यूआईडब्ल्यू, 'get (ind, pos = l)' भी काम करता है। (यह सुनिश्चित नहीं है कि यह 'एल [[इंड]]' से बेहतर होगा, हालांकि।) –

+0

'get (ind, pos = l) ''' '' '' वापस लौटाएगा, लेकिन 'l $ a तक पहुंचने के लिए इसका उपयोग कैसे किया जाएगा ' – Youcha

+0

@Youcha नहीं, असल में, यह वही चीज़ लौटाता है (या कम से कम इसे करना चाहिए, और मेरे लिए करता है)। – joran

संबंधित मुद्दे