gpt4 book ai didi

python - 从 rpy2 中提取返回值

转载 作者:太空宇宙 更新时间:2023-11-04 04:37:25 25 4
gpt4 key购买 nike

我正在使用带有 rpy2 (V2.9.1) 的 Jupyter notebook(Python 3 内核)从 Python 在 R 中运行命令。我可以将值传入和传出 R,但我的问题是我不知道如何从 R 返回的变量中提取我需要的信息。我有以下代码:

%Rpush blood

%%R
library("mice")
memory.limit(56000)
imp <- mice(blood, seed = 23109)

%Rpull imp

print(imp)
[out]<rpy2.rinterface.ListSexpVector - Python:0x00000178FC1BDA20 / R:0x00000178BCF236F0>

imp 是一个包含 21 个元素的列表。我希望能够按名称访问元素。根据这篇文章:rpy2 access R named list items by name, low-level interface例如,我应该能够执行以下操作:

m = imp.rx('m')

 m = imp[imp.names.index('m')]

这两个都给出了错误消息“'rpy2.rinterface.ListSexpVector' object has no attribute 'rx' (or ‘names' in the 2nd case).Yet the post referenced above was using ListSexpVector.有没有办法做这个?

最佳答案

看完这篇文章后我意识到:How to get data from R to pandas问题出在 %Rpull 上。 %Rpull 不会以 Python 友好的形式返回对象,而使用

%%R -i blood -o imp

会,然后 print(imp) 会按预期工作,问题中列出的其他操作也是如此。

关于python - 从 rpy2 中提取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51375306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com