2012-08-15 12 views
5

मेरे पास एक डेटा फ्रेम है जो मैं system() का उपयोग कर किसी अन्य प्रोग्राम में जाता हूं। वर्तमान सेटअप में, मैं पहले डेटाफ्रेम की सामग्री को टेक्स्ट फ़ाइल में लिखता हूं, फिर system() कमांड बनाई गई टेक्स्ट फ़ाइल के लिए देखें।आर सिस्टम का उपयोग कर किसी अन्य प्रोग्राम में डेटा फ्रेम पास कर रहा है()

df1 <- runif(20) 
write(df1, file="file1.txt") 
system("myprogram file1.txt") 

2 प्रश्न हैं:

1) वहाँ पाठ फ़ाइल लिखे बिना सीधे एक dataframe पारित करने के लिए एक तरीका है?

2) यदि नहीं, तो डिस्क में फ़ाइल लिखने के बिना स्मृति स्वरूपित डेटा के रूप में स्मृति को डेटा पास करने का कोई तरीका है?

किसी भी सुझाव के लिए धन्यवाद।

+0

एक विशिष्ट डेटा फ्रेम कितना समय है? एक विकल्प डेटा को कमांड के पैरामीटर के रूप में पास करना होगा, लेकिन मुझे लगता है कि आपने जो किया है वह शायद क्लीनर है। – blindjesse

उत्तर

7

आप कुछ भी आर कॉल कनेक्शन लिख सकते हैं, और इसमें नेटवर्क सॉकेट शामिल हैं।

तो प्रक्रिया ए नेटवर्क को लिख सकती है, और प्रक्रिया बी इसे बिना किसी फाइल-ऑन-डिस्क के पढ़ सकते हैं, help(connections) देखें, जिसमें "उदाहरण" अनुभाग में एक कार्य उदाहरण भी है।

आपका सामान्य विषय यहां क्रमबद्ध है, और आर आपके लिए करता है। आप अपने डेटा संरचना के बारे में मेटाडेटा को एन्कोड करने वाले टूल का उपयोग करके अन्य प्रोग्रामों के लिए डेटा भी पास कर सकते हैं - उदाहरण के लिए Google के प्रोटोकॉल बफर (RProtoBuf पैकेज द्वारा आर में समर्थित)।

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

  • कोई संबंधित समस्या नहीं^_^