使用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,而不是我尝试的其他任何事情。
答案 0 :(得分:1)
这是我之前见过的一个缺失的价值处理问题。只要您缺少值,就会发生这种情况。我不确定我们是否应该将其视为一个错误。但%R -n usda = read.csv('USDA.csv')
使用numpy
来阻止返回(array
-n
)将避免此问题。
还应注意,如果%Rpull usda
之后的%R -n usda = read.csv('USDA.csv')
,您应该同样获得相同的例外。
如果您希望在这种情况下在python
和R
之间来回传输数据,请使用pandas
然后convert_to_r_dataframe
和{{1}进行阅读我认为会更好地工作。