Мой текущий рабочий проект заключается в написании Python программы, которая в разные моменты должна полагаться на R. Поскольку я плохо знаю R, а человек, помогающий мне, не знает Python так хорошо, фактический код R отсутствует в моей программе. Вместо этого он открыл Блокнот, вставил туда код R и сохранил его как (name).r
. После выполнения выходные данные записываются в текстовый файл, который затем можно прочитать Python.
Все, что мне нужно сделать, это попросить Python попросить R запустить (name).r
Я пытался использовать subprocess.run
. Это работало некоторое время, а затем по неизвестной причине перестало работать и теперь ничего не делает. Затем я попытался использовать rpy2, который тоже работал некоторое время; но теперь похоже, что установка не работает, и у меня возникают проблемы с ее переустановкой.
Я бы хотел попробовать третий вариант: PypeR. Я использовал pip install pyper
. Выглядело, как будто это было успешно.
Для простоты я открыл Блокнот и набрал следующее, и сохранил его как hello.r
:
message <- 'goodbye'
write.table(message,'C:/Users/(my name)/Desktop/(folder)/goodbye.txt',row.names=FALSE,col.names=FALSE)
Открытие R вручную и вставка копии Линии в одно время действительно работают. Но я не могу заставить его работать с Python. Вот некоторые вещи, которые я пробовал (я всегда ставлю import pyper
вверху):
pyper.runR("source('C:/Users/(muy name)/Desktop/(folder)/hello.r')")
Это дает NameError: имя 'dump_stdout' не определено
pyper.R("source('C:/Users/(my name)/Desktop/(folder)/hello.r')")
This дает FileNotFoundError: [WinError 2] Системе не удается найти указанный файл
r=pyper.R("C:/Program Files/R/R-3.4.1/bin/i386/Rgui.exe")
r("source('C:/Users/(my name)/Desktop/(folder)/hello.r')")
Это приводит к открытию R Gui с пустой консолью R. И тогда ничего не происходит. Когда я возвращаюсь к Python, консоль показывает, что Python занят, пока я не нажму кнопку остановки, после чего я получаю «OSError: [Errno 22] Неверный аргумент
Как правильно выполнить привет .r?
Спасибо