2017-01-13 28 views
7

Bazı 5 bağımsız değişken (bir dosya adı, 3 int değer ve 2 float değeri) alan bir python betiğim var. Bu python betiğini R'den aramalıyım. Bunu nasıl yapabilirim. Ben rPython kullanmaya çalışıyorum, ama banaR bağımsız değişkenler içeren bir python betiği nasıl çağrılır

library("rPython") 
python.load("python scriptname") 

Ben

komut satırından

i gibi benim python komut dosyasını çalıştırmak argümanları geçmek bilmiyorum argüman geçmesine izin doesnt:

python scriptname filename 10 20 0.1 5000 30 
+0

' veya 'piton: doğru kod şudur. yükle şunu söylüyorsun –

+0

Bunun ilgili olup olmadığını kontrol edin http://stackoverflow.com/questions/40667328/error-in-running-a-python-code-from-r-with-the-package-rpithon –

cevap

12

sen uyumsuz Wai ayarlayabilirsiniz komut dosyasını çalıştırmak için bir sistem komutu

system('python scriptname') 

çağırabileceği t bayrağı yanlıştır.

system('python scriptname filename 10 20 0.1 5000 30', wait=FALSE) 

Komut satırında olduğu gibi geçen argümanlar. Sen değişkenlere erişmek için piton kodunda sys.argv kullanmak zorunda olacak

#test.py 
import sys 

arg1 = sys.argv[1] 
arg2 = sys.argv[2] 
print arg1, arg2 

aşağıda R komutu çıktılayacaktır 'merhaba dünya'

system('python test.py hello world', wait=FALSE) 
+0

harika. Ancak sistem komutları, python programının tamamlanmasını bekler. beklemeyecek herhangi bir yolu var, – user1631306

+0

@ user1631306 evet, [Dökümantasyon] (https://stat.ethz.ch/R-manual/R-devel/library/base/html/system.html) burada. add wait = Yanlış – badger0053

6

harika bir önceki cevap küçük yazım hatası yoktur . YANLIŞ olduğunu beklemek

system('python test.py hello world', wait = FALSE) 

(= Flase beklemek veya = False beklemez) `örneği (python.load) ne yapar