2014-04-20 18 views
20

Szukam sposobu wywoływania Pythona w R na systemie operacyjnym Windows. Ponieważ wydaje się, że nie ma do tego łatwego pakietu R (przynajmniej żadnego pakietu, który został niedawno zaktualizowany), szukam wskazówek, jak napisać zestaw poleceń w skrypcie R, który może następnie zostać wysłany w trybie wsadowym do pyton.Jak wywołać Python z R w systemie operacyjnym Windows?

Krótko mówiąc, w jaki sposób mogę wywołać Pythona z R w systemie operacyjnym Windows?

Edytuj: Aby wyjaśnić, jestem nie z prośbą o wywołanie R z Pythona; Pytam raczej o wywołanie Pythona z R.

Aktualizacja: Na podstawie tego, co już zebrane dotychczas, oto podstawowy zestaw poleceń na prowadzeniu pytona z R w systemie operacyjnym Windows:

# (1) basic python commands called from R 
system('python -c "a = 2 + 2; print a"') 
system('python -c "a = \'hello world\' ; print a; import pandas"') 

# (2) if you have a python file you've already created (which I've referred to as "my.py"), then you can run it in R as follows: 
system("python C:\\Users\\Name\\Desktop\\my.py") 

# or alternatively: 
system('python -c "import sys; sys.path.append(\'C:\\Users\\Name\\Desktop\'); import my;"') 

Ani tych podejść jest na poziomie interaktywności potrzebnej do płynnej analizy danych przy użyciu Pythona w R na systemie Windows. Najprostszym rozwiązaniem może być napisanie prostej funkcji R, która (1) eksportuje określoną ramkę danych R do Pythona, (2) analizuje składnię Pythona zapisaną w R (używając stringr i system('python -c')), a następnie (3) opcjonalnie eksportuje dane powrót do R. Byłaby to pseudointeraktywność w R na podstawie aktualizacji tymczasowego pliku Pythona za pośrednictwem konsoli R.

+0

Oto kolejny przydatny łącza dotyczące wywołującego pytona od R. https://stackoverflow.com/questions/10155703/call-python-with-system-in-r -to-run-a-python-script-emulating-the-python-conso –

+0

To jest świetne pytanie, ponieważ ostrzega mnie, że wywołanie Pythona z R jest możliwe. Czy jednak OP może pouczać ludzi takich jak ja, dlaczego jest to coś, co ktoś może chcieć robić? – Heisenberg

+0

Czy muszę zainstalować specjalną bibliotekę w Pythonie?Uruchomienie powyższego kodu w RStudio z otwieraniem Pythona nic nie dało: (( –

Odpowiedz

5

Można użyć tego pakietu PythonInR

+0

W przypadku gdy odkryłeś [rPython-win] (https://github.com/cjgb/rPython-win), jak to jest porównać do używania PythonInR? –

-1

Jeśli szukasz wywołania Pythona z R, spróbuj rPython, ale nie jest dla systemu operacyjnego Windows. Lub spróbuj RSPython ma słabą obsługę systemu Windows. Inny użyteczny link.

W końcu możesz spróbować użyć czegoś takiego jak Cygwin, aby uruchomić aplikację Linux na swoim systemie operacyjnym Windows. Większe obciążenie pracą będzie polegało na użyciu środowisk wirtualnych, takich jak VMware lub VirtualBox w oknach i zainstalowaniu Linuksa oraz wykonaniu pracy.

+2

Doceniam twoją odpowiedź, ale rPython nie działa w systemie operacyjnym Windows, ponieważ blog, który łączysz, kończy: "Główną wadą pakietu rPython jest to, że obecnie nie działa w systemie Windows. "Inne twoje łącza są również do pakietów, które nie działają w systemie Windows, jak pisze jeden z autorów na temat RSPythona:" UWAGA: obecnie nie pozwala na osadzanie R w Pythonie w systemie Windows. " – statsRus

0

znalazłem rozwiązanie, które w rzeczywistości może pracować na systemie operacyjnym Windows:

http://gallery.rcpp.org/articles/rcpp-python/

W artykule opisano konfigurację dla Ubuntu, gdzie RCPP jest używany jako warstwa pośrednia pomiędzy R i Python. Chociaż nie próbowałem tego jeszcze, nie widzę obecnie powodu, dla którego to rozwiązanie nie powinno działać również w systemie Windows.

1

Zrób plik Pythona ....

# -*- coding: utf-8 -*- 
""" 
Created on Wed Mar 9 09:55:46 2016 

@author: Subhash Jaini 
""" 

import pandas as pd 
d = {'First' : [1., 2., 3.],'Second' : [1,2,3]} 


AA = pd.DataFrame(d) 
print(AA) 

zapisać go na miejscu (użyłem c: /deleteme/pythonRun.py)

w R, uruchomić ten kod.

#calls the python script to run in shell 
BlobReturnedFromPython = shell('python c:/deleteme/pythonRun.py',intern=TRUE) 
#get the first line and turn it to your header 
HEADER = gsub(" ","",unlist(strsplit(as.character(BlobReturnedFromPython[1])," ")))[-1] 
#all the rest of the data is non header data 
NONHEADER = BlobReturnedFromPython[2:(length(BlobReturnedFromPython)-1)] 
#turnthat blob (which is seperated by about 4 spaces) 
DATA = data.frame(sapply(NONHEADER,function(x){unlist(strsplit(x," "))})) 
#brings those names into the data set 
names(DATA) <- HEADER 
DATA  
+0

woooo hooo !! naprawiono problem z limitem. Zakładając, że chcesz to wszystko w pamięci, proszę, idź, tak to robisz! :) https://www.linkedin.com/pulse/using-python- r-windows-7-subhash-jaini – user2804240

Powiązane problemy