2015-05-19 6 views
6

में 3 डी सरणियों पढ़ रहा (दिखाने के लिए नामों हालांकि नहीं है) के रूप में निर्माण आर में एक 3 डी सरणी है:लिखें और आर

v.arr <- array(1:18, c(2,3,3), dimnames = c("A", "B", "X", 
          "Y","Z","P","Q","R")) 

और जब स्क्रीन पर मुद्रित इसे इस तरह दिखाई देता है :

write.table(v.arr, file = “Test Data”) 

मैं तो इसके साथ में वापस पढ़ें:

, , 1 

    [,1] [,2] [,3] 
[1,] 1 3 5 
[2,] 2 4 6 

, , 2 

    [,1] [,2] [,3] 
[1,] 7 9 11 
[2,] 8 10 12 

, , 3 

    [,1] [,2] [,3] 
[1,] 13 15 17 
[2,] 14 16 18 

मैं इसे का उपयोग कर एक फाइल करने के लिए लिख

+०१२३५१६४१०६

X1 X2 X3 X4 X5 X6 X7 X8 X9 
1 1 3 5 7 9 11 13 15 17 
2 2 4 6 8 10 12 14 16 18 

जाहिर है, मैं कुछ भी पढ़ने के पीठ पर लिख रहे हैं या यह पुनर्गठन 3 डी सरणी वापस पाने के लिए पहले फ़ाइल की संरचना करने के क्या करने की जरूरत:

test.data <- read.table(“Test Data”) 

और मैं इस मिलता है। मैं हमेशा पढ़ने वाले डेटा को पुन: व्यवस्थित कर सकता हूं। क्या यह सबसे अच्छा तरीका है? अग्रिम में धन्यवाद।

+2

क्या आप आर में इस डेटा का उपयोग करना चाहते हैं या इसे अन्य सॉफ़्टवेयर के साथ भी पढ़ना चाहते हैं? अगर केवल आर के साथ, क्यों न केवल 'save' (और' load') कमांड के साथ .rda (RData) प्रारूप का उपयोग करें ..? – Tim

+0

सरणी निर्माण में dimnames तर्क का उद्देश्य क्या है? ऐसा अनदेखा प्रतीत होता है। मुझे लगता है कि इसके लिए तीन प्रविष्टियों के साथ एक सूची होने की आवश्यकता है ... – gvrocha

+0

dimnames सरणी के आयामों को नाम असाइन करेंगे, लेकिन मुझे वेक्टर नाम पर 'सूची' जोड़ने की आवश्यकता है। अगर कोई त्रुटि होती है तो इसे अनदेखा कर दिया जाएगा। हाँ, नीचे दिए गए उत्तर का सुझाव है कि मैं आरडीएटा प्रारूप का उपयोग करना एक अच्छा समाधान है। अगर मुझे डेटा निर्यात करने की ज़रूरत है तो मैं पुल पार करूंगा जब मैं इसमें आऊंगा। धन्यवाद, टिप्पणियों के लिए हर कोई। – Ernie

उत्तर

5

आपकी समस्या यह है कि आप ऐसा करने के लिए write.table का उपयोग कर रहे हैं, इसलिए यह है (मुझे विश्वास है) एक टेबल पर अपनी सरणी को मजबूर कर रहा है। यदि आप इसे सहेजना चाहते हैं और यह ध्यान न दें कि यह एक आर-विशिष्ट प्रारूप में होगा, तो आप आसानी से save और load फ़ंक्शंस का उपयोग कर सकते हैं।

save(v.arr,file = "~/Desktop/v.arr.RData") 
rm(list=ls()) 

load("~/Desktop/v.arr.RData") 
v.arr 
+0

हां, यह आंतरिक मध्यवर्ती डेटा है और यह एक आदर्श समाधान है। इस समय इसे निर्यात करने की आवश्यकता की उम्मीद न करें। धन्यवाद!! – Ernie

+0

इस देखभाल में dimnames का सही उपयोग किया जाना चाहिए था: dimnames = सूची (सी ("ए", "बी"), सी ("एक्स", "वाई", "जेड"), सी ("पी", " क्यू "," आर "))) – Ernie

+0

शायद इसे प्रश्न पर रखने का मतलब है? – TARehman

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