您好,并提前致谢。
我试图在Python中运行一个非常简单的代码,使用PypeR模块在我的Python代码中运行R脚本:
#Writing Some Python Code to interface with R
from pyper import *
import sys
import os
import pandas
import glob
import subprocess
import numpy
outputs = runR("a <- 3; print(a+5)")
导致以下错误:
Traceback (most recent call last):
File "C:/Users/gavefl1/Documents/GitHub/Git_R_Test/NewRepo_Python_R/Python_R/MasterFile.py", line 14, in <module>
outputs = runR("a <- 3; print(a+5)")
File "C:\Python27\lib\site-packages\pyper.py", line 793, in runR
Robj = R(RCMD=Robj, max_len=max_len, use_numpy=use_numpy, use_pandas=use_pandas, use_dict=use_dict, host=host, user=user, ssh=ssh, dump_stdout=dump_stdout)
NameError: global name 'dump_stdout' is not defined
我已经尝试查看实际的PypeR.py代码,但据我所知,'dump_stdout'已定义。我的系统规格如下。再次感谢:
Windows 7 64位 Python 2.7.8 Visual Studio 2008(我读过这是用Python运行的最好的Visual Studio Pack) R 3.1.1 PypeR 1.1.2
答案 0 :(得分:2)
我认为你的例子来自这里:http://www.jstatsoft.org/v35/c02/paper
该文章于2010年发布,很可能与v1.0相对应 https://pypi.python.org/pypi/PypeR/1.0
您可以按如下方式安装pyper v.1.0。
pip uninstall pyper
pip install pyper==1.0
话虽如此,通过执行以下操作,您可以使用当前版本(1.1.2)获得相同的结果:
>>> r = R()
>>> outputs = r.("a <- 3; print(a+5)")
>>> outputs
'try({a <- 3; print(a+5)})\n[1] 8\n'
对于1.0版,结果是:
>>> outputs = runR('a <- 3; print(a+5)')
>>> outputs
'try({a <- 3; print(a+5)})\n[1] 8\n'