2015-12-14 11 views
10

में पाइथन/बैश कोड चलाना मैं अपने दिन के दिन आर सामान के लिए Rstudio का उपयोग कर रहा हूँ। कभी-कभी, मैं उन हिस्सों के लिए कुछ पायथन/बैश का उपयोग करना चाहता हूं जो आर बहुत अच्छा नहीं है। मजे की बात है पर्याप्त मैंने देखा है कि अगर मैं एक नया RMarkdown दस्तावेज़ शुरू करते हैं, जो निम्न कोड काम करता है:Rstudio

```{r engine='python'} 
print "Hello" + "World" 
import random 
print random.random() 
``` 

python in rstudio

Rstudio मुझे कुछ अजगर चला सकते हैं। यह बहुत उपयोगी है, लेकिन अधिमानतः मैं इसे मार्कडाउन फीचर के माध्यम से नहीं बल्कि कंसोल के माध्यम से भी चलाने में सक्षम हूं। release notes में यह सुझाव दिया गया है कि सिंटैक्स हाइलाइटिंग के लिए समर्थन है।

मुझे आश्चर्य है, क्या कोई नया कंसोल Rstudio से कनेक्ट करने का कोई तरीका है जैसे कि हम आईडीई से कुछ पायथन/बैश भी कर सकते हैं? यह निश्चित रूप से लगता है जैसे रस्टूडियो में पाइथन से कनेक्ट करने का विचार है। अंतिम लक्ष्य .Rmd दस्तावेज़ बनाने और संपादित/उन्हें निम्न संरचना है कि के साथ बातचीत करने में सक्षम होना होगा:

# Use Case 

Connect to an api that is supported in python 

```{r engine='python', highlight=TRUE} 
data = foobar_api.get(1000) 
file_loc = open("~/data/filename.csv", "w") 
file_loc(data) 
file_loc.close() 
``` 

Then analyse with R again. 

```{r} 
df <- read.csv("~/data/filename.csv") 
summary(df) 
``` 

उत्तर

2

सबसे पहले आपको knitr विकल्प सेट करने की आवश्यकता है।

```{r} 
knitr::opts_chunk$set(engine.path = list(python = '/anaconda/bin/python')) 
``` 

उस बिंदु से बस यह काम करता है।

```{python} 
import this 
``` 
1

आप Architect या सादे EclipseStatET साथ उपयोग करते हैं, आप PyDev प्लग-इन स्थापित कर सकते हैं और लांच और के रूप में आसानी अजगर को शान्ति के साथ बातचीत आप अपने अनुसंधान शान्ति के साथ क्या होता है के रूप में (और, वहाँ निश्चित रूप से, संपादन के लिए पर्याप्त समर्थन और प्रसंस्करण .Rmd फ़ाइलों की है,) में यह सबसे अच्छा है

+0

क्या यह एक ही फ़ाइल से है? – cantdutchthis

1

यह knitr का एक उदाहरण है, जहां यह multiple language engines के लिए अनुमति देता है। तुम बस विम में इन मामलों के लिए संपादन फ़ाइल पर विचार हो सकता है, क्योंकि आप कुछ मज़ा है कि तुम क्या कह रहे हैं के करीब है कर सकते हैं: पाठ का चयन करें और फिर टाइप करें:

:'<,'>!python 
अजगर में निष्पादित करने के लिए

और

:<','>!R --no-save 

आर में निष्पादित करने के लिए this question के उत्तर अधिक जानकारी के लिए देखें।

उपर्युक्त उपयोग केस को पूरी तरह से हल नहीं करता है, क्योंकि चयनित टेक्स्ट को कमांड के आउटपुट (आर आर संस्करण आदि से शुरू करना सरल आर कमांड के मामले में) द्वारा प्रतिस्थापित किया जाता है। हालांकि, यह संभव है कि आउटपुट को this vimtip का उपयोग करके एक अलग बफर (पढ़ें: विंडो) पर भेज दें।

आरस्टूडियो में वीआईएम-मोड एक्सेलेंट से कम नहीं है (यह दृश्य ब्लॉक मोड का भी समर्थन करता है)। लेकिन यह सब कुछ अनुकरण नहीं कर सकता है और RStudio में :!python काम नहीं करेगा। मेरे पास अक्सर वह दस्तावेज़ होता है जो मैं RStudio और VIM दोनों में खुले पर काम कर रहा हूं, और उपर्युक्त मिश्रित भाषाओं के साथ आरएमडी दस्तावेज़ों के लिए ऐसा करने का एक कारण हो सकता है।

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