Jak wywołać Pythona z R w systemie operacyjnym Windows?

Szukam sposobu na wywołanie Pythona w R na systemie operacyjnym Windows. Ponieważ wydaje się, że nie ma łatwo dostępnego pakietu R do tego (przynajmniej nie ma pakietu, który został ostatnio zaktualizowany), Szukam wskazówek, jak napisać zestaw poleceń w skrypcie R, które mogą być następnie wysyłane w trybie wsadowym do Pythona.

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

Edit: dla wyjaśnienia, ja Nie pytam o wywołanie R z Pythona; raczej pytam o wywołanie Pythona z R.

Aktualizacja: bazując na tym, co zebrałem do tej pory, oto podstawowy zestaw poleceń dotyczących uruchamiania Pythona 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;"')

Żadne z tych podejść nie jest na poziomie interaktywności potrzebnej do płynnej analizy danych za pomocą Pythona w R w systemie operacyjnym Windows. Najprostszym rozwiązaniem może być napisanie prostej funkcji R, która (1) eksportuje określoną ramkę danych r do Pythona, (2) parsuje składnię Pythona zapisaną w R (używając stringr i system('python -c')), a następnie (3) opcjonalnie eksportuje dane z powrotem do R. byłaby to pseudo-interaktywność w R oparta na aktualizacji tymczasowego pliku Pythona za pośrednictwem konsoli R.

Author: statsRus, 2014-04-20

4 answers

Możesz użyć tego pakietu PythonInR

 6
Author: A. Shlash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-13 08:37:53

Utwórz 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 w miejscu (użyłem c:/deleteme/pythonRun.py)

W R, uruchom 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    
 1
Author: user2804240,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-09 16:28:20

Znalazłem rozwiązanie, które może działać na systemie operacyjnym Windows:

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

Artykuł opisuje konfigurację dla Ubuntu, gdzie Rcpp jest używany jako warstwa pośrednia między R i Pythonem. Chociaż jeszcze tego nie próbowałem, obecnie nie widzę powodu, dla którego To rozwiązanie nie powinno działać również w systemie Windows.

 0
Author: user1934212,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-21 06:10:37

Jeśli szukasz wywołania Pythona z R, spróbuj rPython, ale nie jest to dla systemu operacyjnego windows. Lub spróbuj RSPython ma słabe wsparcie dla systemu windows. Inny przydatny link .

W końcu możesz spróbować użyć czegoś w rodzaju Cygwin do uruchomienia aplikacji pod Linuksem na Twoim systemie operacyjnym windows. Większe obciążenie pracą będzie korzystanie z niektórych środowisk wirtualnych, takich jak VMware lub VirtualBox w systemie windows oraz instalacja Linuksa i wykonywanie pracy.

 -1
Author: ρss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-20 18:25:02