Подтвердить что ты не робот

Как вызвать Python из R в ОС Windows?

Я ищу способ вызова python внутри R в операционной системе Windows. Поскольку для этого не существует легкодоступного пакета R (по крайней мере, пакет, который недавно обновлялся), я ищу выводы о том, как написать набор команд в R script, которые затем могут быть отправлены в пакетном режиме режим для python.

Короче говоря, как я могу вызвать python из R в ОС Windows?

Изменить: Чтобы уточнить, я не спрашиваю о вызове R из python; скорее я прошу о вызове python из R.

Обновление. Основываясь на том, что я собрал до сих пор, вот базовый набор команд для запуска python из R в ОС 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;"')

Ни один из этих подходов не находится на уровне интерактивности, необходимой для анализа данных флюидов с использованием python в R на ОС Windows. Наиболее простым решением может быть написать простую функцию R, которая (1) экспортирует указанный R-кадр данных в python, (2) анализирует синтаксис python, написанный в R (используя stringr и system('python -c')), а затем (3) опционально экспортирует данные обратно в R. Это будет псевдо-интерактивность в R на основе обновления временного файла python через консоль R.

4b9b3361

Ответ 1

Вы можете использовать этот пакет PythonInR

Ответ 2

Сделайте файл python....

# -*- 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)

сохранить его в место (я использовал c:/deleteme/pythonRun.py)

В R запустите этот код.

#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    

Ответ 3

Я нашел решение, которое может работать на ОС Windows:

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

В статье описывается настройка для Ubuntu, где Rcpp используется как промежуточный уровень между R и Python. Хотя я еще не пробовал этого, в настоящее время я не вижу причин, почему это решение не должно работать и с Windows.

Ответ 4

Если вы ищете вызов python из R, попробуйте rPython, но это не для ОС Windows. Или попробуйте RSPython имеет слабую поддержку для окон. Другая полезная ссылка .

Наконец, вы можете попытаться использовать что-то вроде Cygwin для выполнения приложения linux в ОС Windows. Больше рабочей нагрузки будет использовать некоторые виртуальные среды, такие как VMware или VirtualBox в Windows и установить Linux и выполнить свою работу.