将Python中的列表转换为R中的向量
我已经在这里引用了这篇文章。 我得到了同样的错误,但提供的解决方案不适合我,所以我张贴它。我正在Linux中使用python 2.7和rpy2对应的最新版本 我尝试使用rpy2从python调用R函数,我的前几行代码如下将Python中的列表转换为R中的向量,python,r,rpy2,Python,R,Rpy2,我已经在这里引用了这篇文章。 我得到了同样的错误,但提供的解决方案不适合我,所以我张贴它。我正在Linux中使用python 2.7和rpy2对应的最新版本 我尝试使用rpy2从python调用R函数,我的前几行代码如下 import rpy2.robjects as robjects from rpy2.robjects.packages import importr import rpy2.robjects.numpy2ri rpy2.robjects.numpy2ri.activate
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
import rpy2.robjects.numpy2ri
rpy2.robjects.numpy2ri.activate()
r=robjects.r
astsa=importr('astsa')
astsa.acf2(L, 3) # L:a numeric list returned by my omitted code,I checked
错误如下:
Traceback (most recent call last):
File "/home/jin/Desktop/main.py", line 63, in <module>
astsa.acf2(traffic[0], 3)
File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 86, in __call__
return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/rpy2/robjects/functions.py", line 35, in __call__
res = super(Function, self).__call__(*new_args, **new_kwargs)
RRuntimeError: Error in stats::acf(series, max.lag, plot = FALSE) : 'x' must be numeric
您可以轻松导出使用Python生成的数据帧:
import numpy as np
import pandas as pd
创建数据帧并将其导出:
mydataFrame.to_csv("path/to/mydataFrame.csv")
然后导入R中带有read.csv的数据帧。data$列将为您提供列表。错误来自R:它需要一个数字向量,L可能是一个列表,查看来自R的错误消息这是真的,但当我尝试使用前面的参考链接将python列表转换为R向量时,它没有通过,这就是为什么我会更容易解释发生了什么,如果你能提供一个自给自足的例子,这里有一个我在这里做的事情,但我所做的一切都是正确的中间差距,这表明它包含了问题的来源和解释,你可以在最后一行之前添加一条分配线,比如L =[1,2,3,4,5,6],错误消息仍然存在。请确保已安装astsa R软件包。谢谢,我知道了,您需要多行代码才能调用R函数L=robjects.FloatVectorL