rpy2 在 FactorVector 中保留元数据

rpy2 preserve metadata in FactorVector

我在 python 中有一个脚本可以加载 .RData 并读取它,然后将其写出到 excel 文件中。不幸的是,一个 table 包含 11 个变量和 144 个混合类型的对象(IntVector、FactorVector、Float Vector、Float Vector 等)

当table写入Excel时,列名和数据被保留,除了是四级FactorVector的列。它没有返回与四个级别关联的元数据(a,a,a,a,b,b,b,b,c,c,c,c,d,d,d,d...等),而是returns 与每个级别关联的整数值(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4...等)

我在 rpy2 sourceforge website 上找到了这个,这几乎可以解释我的问题。

Since a FactorVector is an IntVector with attached metadata (the levels), getting items Python-style was not changed from what happens when gettings items from a IntVector. A consequence to that is that information about the levels is then lost.

下面继续解释使用级别,此时我不知道我应该做什么或使用什么来保持所讨论的 FactorVector 变量的元数据级别完好无损。

我假设有某种 rpy2.robjects "switch" 会在翻译成 python 时保留此元数据?应用它的最有效方法是什么?谢谢!

rpy2-2.6.0中为pandas DataFrame定制的转换层客户应该负责将R因子转换为Pandas因子。