2013-06-12 83 views
0

我已經在這裏引用了這篇文章。 converting a Python list to an R numeric vector將Python中的列表轉換爲R中的向量

我得到了同樣的錯誤,但提供的解決方案不適合我,所以我張貼它。我在Python中使用python 2.7和rpy2相應的最新版本

我試圖從python中使用rpy2調用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 
+0

錯誤來自R:它需要一個數值向量,而L可能是一個列表(查看來自R的錯誤消息) – lgautier

+0

這是真的,但是當我嘗試使用前一個參考鏈接將python列表轉換爲R向量時,它沒有通過,這就是爲什麼我發佈 – Jin

+0

如果你可以提供一個獨立的例子(這裏有一個「我正在做的事情,但我所做的一切都是正確的「在中間的差距,這確實表明它包含問題的來源和解釋) – lgautier

回答

0

您可以輕鬆地導出關於Python與panda生成的數據幀:

import numpy as np    
import pandas as pd 

創建一個數據幀和導出:

mydataFrame.to_csv("path/to/mydataFrame.csv") 

並在R中導入數據幀read.csvdata$column會給你你的列表。

相關問題