r - Python 的 .cat.codes 的 R 等效项是什么,它将分类变量转换为整数级别?
问题描述
在 python 中,您可以使用 .cat.code 为变量生成分类代码,例如
df['col3'] = df['col3'].astype('category').cat.code
你如何在 R 中做到这一点?
解决方案
为@Sid29 进一步充实这一点:
python方法函数.cat.code
提取因子水平的数字表示。R中的等价物是:
a <- factor(c("good", "bad", "good", "bad", "terrible"))
as.numeric(a)
[1] 2 1 2 1 3
请注意,这.cat.code
将代表NA
(或NaN
相同的事物),-1
而 R 中的上述解决方案仍然是保留NA
者,并且输出将是简单NA
的 .
编辑:as.numeric(a)
更好。labels
有关于函数内部使用函数的讨论as.numeric
。请参阅中的警告?factor
:
特别是,应用于因子的 as.numeric 是没有意义的,并且可能通过隐式强制发生。要将因子 f 转换为近似其原始数值,建议使用 as.numeric(levels(f))[f],并且比 as.numeric(as.character(f)) 稍微高效一些。
存在一些与以 NA 为水平的因素相关的异常情况。建议谨慎使用它们,例如,仅用于制表目的。
如果你有一个NA
值,它会将所有值强制为NA
,因此使用labels
. 有趣的是,c(a)
有效(参见下面的@42 答案)。
推荐阅读
- python - 根据值聚合字典数组
- parameters - 有没有办法将一对元组定义为函数的参数?我被这个“Python 3 不支持元组参数解包”所困扰
- matlab - 如何在 MATLAB 应用程序设计器中使用滑块的值将图像旋转一定角度
- spring-boot - 带有 [Ljava.util.Date; 的类;和 [Ljava.util.Date 的名称;不被信任
- flutter - Riverpod 家族提供者列表/设置参数
- amazon-web-services - 将 Amazon SES 用于 2 个域
- javascript - 在 reactjs 中使用 JWT auth 处理登录
- c# - .net 核心到端点 API System.Net.Sockets.SocketException:资源暂时不可用
- vega-lite - 使用阈值比例在图例上显示最小值
- hakyll - Hakyll 从帖子列表中获取标签列表