2011-10-28 6 views
9

में कनवर्ट करें मुझे पता है कि आर कोड को पायथन में कनवर्ट करने के लिए एक मॉड्यूल (rpy और rpy2) मौजूद है।पाइथन को आर

क्या रिवर्स करने का कोई आसान तरीका है?

+1

आरआरएएन पर आरजेथन पैकेज और आर-फोर्ज पर आरपीथन पैकेज को आर से जेथन कोड और पायथन कोड को कॉल करने दें। सीआरएएन पर आरएसआईएमपी पैकेज आरजेथन का उपयोग करता है (और, वास्तव में, आरजेथन पहले आरएसआईएमपी का हिस्सा था और तब से अपने पैकेज में फैक्टर)। –

उत्तर

13

rpy (2) कोड को परिवर्तित नहीं करता है। यह आपको केवल एक पाइपथन से आर के साथ संवाद करने और पाइथन के भीतर आर आदेश जारी करने की अनुमति देता है।

यह देखते हुए कि आर सांख्यिकीय पुस्तकालयों पर बहुत निर्भर है जो पाइथन में उपलब्ध नहीं हैं रूपांतरण आम तौर पर काम की जबरदस्त मात्रा होगी।

lmer (y ~ x1 + x1 + (1|id), mydat) 

पाइथन में कुछ भी काम करने के लिए एक पंक्ति को रूपांतरित करने के लिए। यदि आप सिर्फ उस कोड को पायथन उपयोग rpy से चलाने के लिए चाहते हैं। दूसरी तरफ जा रहा है, जो आपको लगता है कि आप जितना अधिक रुचि रखते हैं, रूपांतरण अक्सर थोड़ा अधिक सरल हो सकता है। हालांकि, कोड आर के लिए बहुत खराब अनुकूलित किया जाएगा और बहुत बुरी तरह से चलाया जाएगा। मैंने हाल ही में किसी ऐसे व्यक्ति द्वारा पायथन से परिवर्तित कुछ आर कोड अनुकूलित किया है, जिसने आर कोड को लाइन द्वारा कम या ज्यादा प्रत्यक्ष अनुवाद लाइन के रूप में लिखा था। ऑप्टिमाइज़ेशन 1/3 लंबाई और 20 से 1000 गुना तेज (फ़ंक्शन के आधार पर) आया था।

+0

आर कोड 'lmer (y ~ x1 + x1 + (1 | id), mydat) क्या करता है? मैं सोच रहा हूं कि यह ऐसा काम नहीं है कि NumPy/SciPy अच्छा होगा। – EOL

+1

NumPy/SciPy मैनुअल पर एक त्वरित नज़र से पता चलता है कि उनके आंकड़े समर्थन बहुत बुनियादी हैं ... 'lmer' (' lme4' पैकेज में रैखिक मिश्रित मॉडल फिटिंग के लिए है, जो एक गैर-तुच्छ कम्प्यूटेशनल समस्या है ...) –

4

जॉन सही है। ये भाषाओं के बीच परिवर्तित नहीं हो रहे हैं, लेकिन भाषाओं को इंटरफेस कर रहे हैं। भाषा रूपांतरण विशेष रूप से आम नहीं है, हालांकि उन्हें इंटरफेसिंग करना है। हालांकि, ऑब्जेक्ट रूपांतरण काफी आम है, क्योंकि यह भाषाओं को इंटरफ़ेस करने का एक महत्वपूर्ण हिस्सा है।

आरपी और आरपी 2 के अलावा, RSPython पर एक नज़र डालें। यह ऑब्जेक्ट रूपांतरण के लिए भी प्रदान करता है, और रेपी प्रेरित करता है।

4

अगर पायथन होने के रूप में एक प्रारंभिक बिंदु स्वीकार्य है, rpy2 आप आर और अजगर के बीच दोनों तरीकों से जाना करने देता है: आर कोड (doc here) निष्पादित करते समय आप अजगर कोड कॉल कर सकते हैं।

1

PypeR साथ आप दोनों तरीकों से बहुत आसानी से जा सकते हैं: आर से अजगर को और अजगर से आर को http://www.webarray.org/softwares/PypeR/

यह बहुत अच्छा काम करता है और यह आलेख वर्णन करता है कि यह कैसे काम करता है और विकल्प का लाभ होता (rpy, rpy2 आदि)

http://www.jstatsoft.org/v35/c02/paper

मैं व्यक्तिगत रूप से यह प्रयोग किया जाता अजगर से आर में स्टेट मॉडल को चलाने के लिए, और एक ही रास्ता से दूसरे/निर्यात dataframes आयात (और आर-dataframes और viceversa में numpy फ्रेम कन्वर्ट करने के लिए)।