【问题标题】:Python: RRuntimeError: Error in (function (data = NA, dim = length(data), dimnames = NULL) : 'dims' cannot be of length 0Python:RRuntimeError:(函数(data = NA,dim = length(data),dimnames = NULL)中的错误:'dims'的长度不能为0
【发布时间】:2017-09-23 03:30:06
【问题描述】:

我正在尝试从 python 调用 R 函数,但由于某种我还不知道的原因,当我将数字转换为 R 而不是矩阵(数据帧)转换为 R 时,我得到了 RRuntimeError

例如,考虑下面这个简单的例子

import rpy2.robjects as robjects, pandas as pd, numpy as np
from rpy2.robjects import r
from rpy2.robjects.numpy2ri import numpy2ri
from rpy2.robjects.packages import importr

df= pd.DataFrame(np.random.random((108, 2)), columns=['Number1','Number2'])
p = 3 

resi1=np.array(df, dtype=float)
p1=np.array(p, dtype=float)

r_resi = numpy2ri(resi1)
r_p1= numpy2ri(p1)

那么输出就是

---------------------------------------------------------------------------
RRuntimeError                             Traceback (most recent call last)
<ipython-input-1-7970a0b7c100> in <module>()
     11 
     12 r_resi = numpy2ri(resi1)
---> 13 r_p1= numpy2ri(p1)

D:\Anaconda3\lib\site-packages\rpy2\robjects\numpy2ri.py in numpy2ri(o)
     80         #FIXME: no dimnames ?
     81         #FIXME: optimize what is below needed/possible ? (other ways to create R arrays ?)
---> 82         res = rinterface.baseenv['array'](vec, dim=dim)
     83     # R does not support unsigned types:
     84     elif o.dtype.kind ==

 "u":

RRuntimeError: Error in (function (data = NA, dim = length(data), dimnames = NULL)  : 
  'dims' cannot be of length 0

我不确定这里出了什么问题?

【问题讨论】:

    标签: python-3.x rpy2


    【解决方案1】:

    转换器numpy数组-> R数组需要数组的维数。这里没有:

    >>> p1
    array(3.0)
    >>> p1.shape
    ()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多