r - 将二进制分类变量转换为 0 和 1
问题描述
我有一个数据集,其中结果变量是二元分类变量“诊断”,它是肿瘤的类型:“良性”或“恶性”。
将变量转换为数字时(“良性”=0 和“恶性”=1),我使用以下代码:
tumor.df <- fread("df.csv", stringsAsFactors = T)
tumor.df$diagnosis = as.numeric(tumor.df$diagnosis, levels=c('benign', 'malignant'), labels=c(0, 1))
但是,诊断不是转换为 0 和 1,而是转换为 1 和 2。为什么会这样?
解决方案
因为 R 将因子存储为一组基础整数代码(从 1 开始)和一组相关标签。
我会说你应该继续从你得到的值中减去一个。还有很多其他方法可以进行转换,它们的效率和可读性各不相同。另一种选择是as.numeric(tumor.df$diagnosis=="malignant")
(R 转换FALSE
为 0TRUE
到 1)
推荐阅读
- reactjs - 命名空间“React”没有导出的成员“FC”。在“@types/reactor”中
- vue.js - Vue路由器,刷新显示空白页面
- sql - Oracle 到 SQL Server 查询迁移结果为:视图、内联函数、派生表中的 ORDER BY 子句无效
- git - 如何检查 Git 邮件映射文件的语法?
- java - 有没有一种简单的方法可以消除输出中的最后一个逗号?数字分隔符
- latex - R Markdown:PDF文档编译错误(pdf后端)
- java - 使用自定义 Maven 插件时找不到第三方库
- arrays - 使用python从while循环到文本文件的数组输出
- python-3.x - pip包安装失败
- opengl - 为什么金字塔可以使用 GL_SMOOTH 着色,而另一个立方体只是像 GL_FLAT 一样着色?