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.
4 answers
Możesz użyć tego pakietu PythonInR
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
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.
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.
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