2012-01-04 15 views
5

मैं वर्तमान में सक्रियस्टेट पर्ल 5.14 और आर प्रोजेक्ट संस्करण 2.13.2 का उपयोग कर रहा हूं। पर्ल के भीतर मैं सांख्यिकी :: आर संस्करण 0.08 का उपयोग कर रहा हूं। एक्टिवस्टेट के अनुसार Statistics::R (0.24 के माध्यम से) के हालिया संस्करणों की जांच पास करने में विफल रही और इसलिए पीपीएम के माध्यम से उपलब्ध नहीं है।पर्ल सांख्यिकी :: आर खाली साजिश छवि उत्पन्न करता है (जेपीईजी)

इतिहास: मैं विश्लेषण करने के लिए कुछ समय के लिए आर तक पहुंचने के लिए सफलतापूर्वक पर्ल का उपयोग कर रहा हूं। अब मैं आसान विज़ुअलाइजेशन के लिए विश्लेषण के परिणामों की जेपीईजी छवियां जेनरेट करना चाहता हूं।

यहां समस्या है: मैं आर कंसोल के भीतर से छवियों को सफलतापूर्वक उत्पन्न कर सकता हूं। हालांकि, जब मैं पर्ल I के माध्यम से वही आदेश चलाता हूं तो केवल एक खाली छवि प्राप्त होती है। मेरे कंसोल कोड भी शामिल है (जाहिर है, सरलीकृत):

x<-c(1,2,3,4,5) 
    y<-c(5,4,3,2,1) 
    jpeg("C:/temp.jpg") 
    plot(x,y) 
    dev.off() 

और मेरे पर्ल आदेशों में शामिल हैं (यह भी सरलीकृत):

$R = Statistics::R->new(); 
    $R->start_sharedR 
    $R->send("x<-c(1,2,3,4,5)"); 
    $R->send("y<-c(5,4,3,2,1)"); 
    $R->send('jpeg("C:/temp.jpg")'); 
    $R->send("plot(x,y)"); 
    $R->send("dev.off()"); 

कोई सुझाव? मुझे पता है कि पर्ल के लिए अन्य प्लॉटिंग विकल्प उपलब्ध हैं। मैंने कुछ (जीडी ग्राफ) को हटा दिया है क्योंकि एक्स-अक्ष डेटा को संख्यात्मक के रूप में नहीं माना जाता है। अगर मैं संभवतः उस पैकेज में विश्लेषण के लिए बातचीत कर रहा हूं, तो मैं इसे आर में रखना पसंद करूंगा। धन्यवाद!

+0

'काहिरा' पैकेज का उपयोग करने का प्रयास करें (उदा। 'काहिराजेपीईजी() '),' जेपीईजी 'जैसे अंतर्निर्मित कार्य बैक-एंड पर निर्भर हो सकते हैं कि आप इसे चलाने से कुछ क्षमताओं को आरयूआई के रूप में उपलब्ध हो सकते हैं लेकिन एम्बेडेड नहीं होने पर (मैंने इस उदाहरण की जांच नहीं की है, लेकिन काहिरा बैक एंड के बावजूद काम करता है)। –

+0

मैंने आपके द्वारा प्रदान किए गए पर्ल कोड को चलाया (दोनों 'सख्त' और 'चेतावनियां' सक्षम करना) और यह ठीक काम किया। मुझे पहले के अनुभव से पता है कि 'सांख्यिकी :: आर' छवियों को ग्राफिक्स लिखने में परेशानी होती है (या कम से कम यह मेरे सिस्टम पर होती है)। सुनिश्चित करें कि 'सांख्यिकी :: आर' का आपका संस्करण अद्यतित है। –

+0

एक्टिवस्टेट के साथ मेरा मानना ​​है कि मैं 0.08 तक सीमित हूं। – Ryan

उत्तर

4

सांख्यिकी भूल गए :: आर। बस एक सिस्टम कॉल का उपयोग करें। कम से कम यह मैं करता हूँ!

my $path_to_r = "C:/Program Files/R/bin/Rscript.exe"; 

my $cmd = "x<-c(1,2,3,4,5);"; 
$cmd .= "y<-c(5,4,3,2,1);"; 
$cmd .= 'jpeg("C:/temp.jpg");'; 
$cmd .= "plot(x,y);"; 
$cmd .= "dev.off()"; 

system($path_to_r . " -e '" . $cmd . "'"); 

अपने आर स्क्रिप्ट थोड़ा बड़ा होता है या अगर यह मानकों से इनपुट लेता है, एक फ़ाइल और Rscript.exe इस फ़ाइल में लिखने हैं।

+0

सहमत हुए। वही है जो मैं वैसे भी कर रहा था। मैं काम करने के लिए स्ट्रॉबेरी PERL नहीं मिल सका; बहुत टूटी निर्भरताएं थीं। – Ryan

0

यह सांख्यिकी आर :: 0.27 के साथ मेरे लिए ठीक काम करता है, लेकिन 0.08 के साथ नहीं, एकमात्र संस्करण जो मैं सक्रिय पर्ल के पैकेज मैनेजर में पा सकता हूं। 0.27 इंस्टॉल करने के लिए, मुझे cpan कमांड लाइन का उपयोग करना पड़ा। परीक्षण विफल हो जाता है लेकिन इंस्टॉल करना ठीक था। एक जीवन बचतकर्ता का बिट।

(वैसे मैं एक रिश्तेदार noob cpan कमांड लाइन से टाइप i /Statistics-R/ हूँ। का प्रयोग cpan कमांड लाइन हालांकि बहुत आसान था।
, तो FANGLY/सांख्यिकी-R-0.27.tar.gz स्थापित (या जो भी प्रासंगिक फाइल है। मैं एक विंडोज सिस्टम का उपयोग कर रहा हूं, इसलिए आरएसपीरल मेरे लिए एक विकल्प नहीं है। मुझे लगता है कि नवीनतम सांख्यिकी :: आर संस्करण मार्च 2012 की तारीख है, इसलिए शायद पहले की कुछ दस्तावेज (पाइपिंग?) समस्याओं का हल हो गया है। आपको 'मेकर' स्थापित करने की भी आवश्यकता हो सकती है; मेरे मामले में यह 'डमेक' था, न कि 'एनमेक'। बहुत आसान, आप एम $ वेबसाइट से बनाने का संस्करण प्राप्त कर सकते हैं और उस + .err फ़ाइल को PERL \ bin में कॉपी कर सकते हैं dir। लेकिन इस पर सहायता कहीं और उपलब्ध है। उम्मीद है कि यह मदद करता है!)

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