首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R maptools rpy2中的wrld_simpl

R maptools rpy2中的wrld_simpl
EN

Stack Overflow用户
提问于 2021-03-16 14:52:05
回答 1查看 38关注 0票数 0

在R中:

代码语言:javascript
复制
import(maptools)
data(wrld_simpl)

在python rpy2中,如何访问wrld_simpl?以下代码(在Python中)失败,如下所示...package "maptools" has no attribute wrld_simpl

代码语言:javascript
复制
maptools = importr('maptools')
data = DataFrame(maptools.wrld_simpl)

只是想要理解rpy2 (重温大学时代的R)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-18 00:39:48

使用rpy2.robjects.packages.data,如rpy2 introduction中所示

代码语言:javascript
复制
>>> from rpy2.robjects.packages import importr, data

>>> maptools = importr('maptools')
>>> spatial_df_r = data(maptools).fetch('wrld_simpl')['wrld_simpl']
>>> spatial_df_r
<rpy2.robjects.methods.RS4 object at 0x7ffa932b0cc0> [RTYPES.S4SXP]
R classes: ('SpatialPolygonsDataFrame',)

您似乎还在尝试将数据转换为pandas.DataFrame。小问题是数据不是数据框,而是SpatialPolygonsDataFrame对象。但是,您可以将其转换为适当的data.frame

代码语言:javascript
复制
>>> base = importr('base')
>>> df_r = base.as_data_frame(spatial_df_r)
>>> tuple(df_r.rclass)
('data.frame',)

然后是熊猫DataFrame:

代码语言:javascript
复制
from rpy2.robjects import conversion
from rpy2.robjects import default_converter, pandas2ri

with conversion.localconverter(default_converter + pandas2ri.converter):
    df = conversion.rpy2py(df_r)

其中df现在是一只熊猫DataFrame:

代码语言:javascript
复制
>>> type(df)
<class 'pandas.core.frame.DataFrame'>

但是,如果您使用的是Jupyter,使用rpy2 magic的-o选项可以更容易地完成转换,请参阅:using rpy2 in notebooksrpy2.ipython.rmagic

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66650292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档