rpy2 中的 R maptools wrld_simpl
R maptools wrld_simpl in rpy2
在 R 中:
import(maptools)
data(wrld_simpl)
在 python rpy2 中,如何访问 wrld_simpl
?以下代码(在 Python 中)失败如下...package "maptools" has no attribute wrld_simpl
maptools = importr('maptools')
data = DataFrame(maptools.wrld_simpl)
只是想了解 rpy2(并重温大学时代的 R)
使用rpy2.robjects.packages.data
,如rpy2 introduction:
所示
>>> 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
:
>>> base = importr('base')
>>> df_r = base.as_data_frame(spatial_df_r)
>>> tuple(df_r.rclass)
('data.frame',)
然后到pandas DataFrame:
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
现在是一个 pandas DataFrame:
>>> type(df)
<class 'pandas.core.frame.DataFrame'>
但是,如果您使用的是 Jupyter,则可以使用 rpy2 magic 的 -o
选项更轻松地完成转换,请参阅:using rpy2 in notebooks and rpy2.ipython.rmagic。
在 R 中:
import(maptools)
data(wrld_simpl)
在 python rpy2 中,如何访问 wrld_simpl
?以下代码(在 Python 中)失败如下...package "maptools" has no attribute wrld_simpl
maptools = importr('maptools')
data = DataFrame(maptools.wrld_simpl)
只是想了解 rpy2(并重温大学时代的 R)
使用rpy2.robjects.packages.data
,如rpy2 introduction:
>>> 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
:
>>> base = importr('base')
>>> df_r = base.as_data_frame(spatial_df_r)
>>> tuple(df_r.rclass)
('data.frame',)
然后到pandas DataFrame:
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
现在是一个 pandas DataFrame:
>>> type(df)
<class 'pandas.core.frame.DataFrame'>
但是,如果您使用的是 Jupyter,则可以使用 rpy2 magic 的 -o
选项更轻松地完成转换,请参阅:using rpy2 in notebooks and rpy2.ipython.rmagic。