Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Python中的列表转换为R中的向量_Python_R_Rpy2 - Fatal编程技术网

将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

我已经在这里引用了这篇文章。

我得到了同样的错误,但提供的解决方案不适合我,所以我张贴它。我正在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()

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