我是python的新手。我已经用R语言编写了脚本,并做了很多分析。但是现在我发现应该将其转换为python。无论如何,如果可能,我将rds文件导入python时遇到问题。我遵循了this post。但是,它会导致此错误
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
readRDS = robjects.r['readRDS']
df = readRDS('clus_resf.rds')
df = pandas2ri.ri2py(df)
raise TypeError(msg.format(categories))
TypeError: Parameter 'categories' must be list-like, was <rpy2.rinterface.StrSexpVector - Python:0x2b45d8823e40 / R:0x2b451e7c6d80>
您可以在this link上找到我的rds文件 非常感谢,
答案 0 :(得分:1)
当某些版本的rpy2和pandas结合在一起时,这似乎是一个错误。用例如
更新它们pip install --upgrade rpy2 pandas
并且错误应该消失。
答案 1 :(得分:0)
使用pyreadr软件包看起来更容易,安装
pip install pyreadr
用法:
import pyreadr
result = pyreadr.read_r('test_data/basic/one.Rds')
# done! let's see what we got
print(result.keys()) # let's check what objects we got: there is only None
df1 = result[None] # extract the pandas data frame for the only object available
使用该软件包,您还可以从python编写.rds文件。