繁体   English   中英

Rpy2将包含空值的分类数据转换为R因数

Rpy2 conversion of categorical data containing nulls to R factors

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个带有包含NaN值的分类列的熊猫数据框,例如:

g = pd.Series(["A", "B", "C", np.nan], dtype="category")
g

0      A
1      B
2      C
3    NaN
dtype: category
Categories (3, object): [A, B, C]

在熊猫中,NaN不是类别,但是您可以在分类数据中包含NaN值。 我想在Jupyter笔记本中使用%% R将此数据帧传递给R。 R成功地将分类列识别为一个因子,但是该因子的格式不正确,大概是因为Nan值:

%%R -i g
str(g)
Factor w/ 3 levels "A","B","C": 1 2 3 0
 - attr(*, "names")= chr [1:4] "0" "1" "2" "3" 

print(g)
Error in as.character.factor(x) : malformed factor

是否有任何方法可以确保该因子没有格式错误-例如自动创建NA因子水平?

R:3.5.1,rpy2:2.9.4,Python-3

1 个回复

在撰写本文时,这是rpy2转换熊猫类别的错误,该错误已修复,并且将从2.9.5版本开始包含在rpy2中: https ://bitbucket.org/rpy2/rpy2/issues/493/rpy2- 转换-的-分类数据

解决方法相当简单:不要在熊猫类别中使用NaN

g = pd.Series(["A", "B", "C", np.nan], dtype="category")
# Prepare alternative representation to pass it to R
g_r = g.replace(np.nan, 'Missing')

现在转换时看起来像:

%%R -i g_r
str(g_r)

Factor w/ 4 levels "A","B","C","Missing": 1 2 3 4
- attr(*, "names")= chr [1:4] "0" "1" "2" "3"

转换回R NA只是降低添加级别的问题:

%%R -i g_r
str(droplevels(g_r, exclude = "Missing")) 

Factor w/ 3 levels "A","B","C": 1 2 3 NA
- attr(*, "names")= chr [1:4] "0" "1" "2" "3"
1 Rpy2 将 R 数据帧转换为 Pandas

如何通过rpy2将R数据帧对象正确转换为pandas数据帧? 我已经尝试了从文档到 stackoverflow 的所有内容,但都无济于事。 我的 rpy2 版本是在 Conda 中运行的 2.9.4。 我试过了: from rpy2.robjects import pandas2ri pandas ...

2 使用 rpy2 将 python 数据帧字符列转换为 r

我正在尝试使用 rpy2 将 python 数据帧转换为 r,但无法将 python 数据帧中的日期转换为 r 数据帧中的日期类型。 将pd.to_datetime()转换为 r 数据帧时,我没有得到正确的转换。 有问题的 df 日期列: 转换代码: 产生: 放电时间也是如此。 用 ...

4 使用 Python 和 rpy2 调用 R 包数据

我想在 Python 中使用 R 包library(ISLR)中的Auto数据。 我做了一些受rpy2 简介启发的测试,如下所示: 然后我可以成功测试data(mtcars) in library(datasets) ,而data(Auto) in library(ISLR)中的测试data(A ...

2020-10-03 07:49:04 1 101   r
5 如何从rpy2访问复杂的R数据结构字段

我正在使用r软件包生物导体limma edgeR进行rna-seq表达分析。 我有一个由featureCounts函数返回的DGElist。 如何使用rpy2在python中访问此DGElist的字段? 我做了A=r("X<-featureCounts(...)")但是当我做了A ...

6 Rpy2:如何将字典列表转换为R数据框

我有以下字典的Python列表(来自sqlite3行工厂): 我想将其转换为R data.frame,以便与rpy2 (版本2.3.6)一起使用,因此看起来像这样 我能够将单个“行”转换为data.frame,如下所示: 使用robjects.DataFrame(obs) ...

7 在rpy2中捕获R错误

使用RStudio时,运行函数时可以看到任何错误或警告。 但是,当我使用rpy2时,如何捕获警告(允许代码运行)和错误(使代码停顿),以便可以在python中以编程方式解析消息? ...

8 使用rpy2导入R包

我正在尝试通过rpy2在Python 3.6.5中使用R(版本3.4.3)包MICE。 这是我使用的代码: 执行此操作时,我的Jupyter笔记本死了。 在终端中,我收到错误消息: 但是我确实安装了软件包统计信息,并且文件'C:/ Program Files / R / R- ...

9 获得Rpy2数据帧的R类

在R中,我可以 如何从rpy2获得等效输出? 我已经尝试了很多方法,但是我真正想要的是填补空白: 这没有给出我想要的输出, 也没有: ...

10 如何在rpy2中使用R'with'运算符

我正在执行序数逻辑回归,并按照此处的指导进行分析: R数据分析示例:序数逻辑回归 我的数据框(咨询)如下所示: 我需要在R中使用以下命令来创建图以测试比例赔率假设: (es_score是序数排序得分,其值介于0到4之间; n是整数; raingarden和consult_c ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM