使用rmagic读取a particular file(而不是其他)时,在%R%%R之间出现不一致的行为:为什么

%%R

usda = read.csv("USDA.csv")


工作,而

%R usda = read.csv("USDA.csv")


失败于

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-64-01ec3b4742c8> in <module>()
----> 1 get_ipython().magic(u'R usda = read.csv("USDA.csv")')

...

/Library/Python/2.7/site-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
    458
    459     """
--> 460     return array(a, dtype, copy=False, order=order)
    461
    462 def asanyarray(a, dtype=None, order=None):

TypeError: __float__ returned non-float (type rpy2.rinterface.NAIntegerType)


同样,这仅在the linked file上发生,而在我尝试过的其他任何情况下都不会发生。

最佳答案

这是我以前见过的缺失的价值处理问题。每当您缺少值时,都应该发生这种情况。我不确定是否应该将其视为错误。但是%R -n usda = read.csv('USDA.csv')禁止使用numpy返回(一个array -n)将避免此问题。

还应注意,如果在%Rpull usda之后使用%R -n usda = read.csv('USDA.csv'),则应类似地获得相同的异常。

如果您想在这种情况下在pythonR之间来回传输数据,我认为先使用pandas然后再使用convert_to_r_dataframeconvert_robject读取数据。

关于python - 为什么'rmagic'%R在读取文件时引起错误,而%% R却没有?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22749489/

10-10 04:00