r - 如何将数值变量更改为分类变量
问题描述
我试图将“Wine”变量更改为分类变量
wine_df
wine_df$Wine
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[75] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[112] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
[149] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
创建 A=1、B=2、C=3 的类别
wine <- cut(wine_df$Wine, breaks=c(1,2,3), labels=c("A", "B", "C"))
Error in cut.default(wine_df$Wine, breaks = c(1, 2, 3), labels = c("A", :
lengths of 'breaks' and 'labels' differ
但不断收到此错误:
Error in cut.default(wine_df$Wine, breaks = c(1, 2, 3), labels = c("A", :
lengths of 'breaks' and 'labels' differ
任何人都可以支持这个问题?
解决方案
我们可以LETTERS
相应地使用和提取值
输入
x <- rep(1:3, 1:3)
输出
LETTERS[x]
#[1] "A" "B" "B" "C" "C" "C"
这里的重点是我们可以用它x
来按位置提取另一个向量的值。
如果目标是改变 1 = x、2 = y 和 3 = z(或其他),我们可以做
c("x", "y", "z")[x]
#[1] "x" "y" "y" "z" "z" "z"
感谢@zx8754 的有用评论。
推荐阅读
- mysql - PhpMyAdmin 表导出忽略时间戳列
- javascript - IBM MQ 如何逐条读取消息,而不是一次在队列管理器中全部可用?
- react-native - Sockit.io 无法通过 React Native 连接到服务器
- go - 我可以模拟一个需要使用指针参数的函数吗
- xgboost - 梯度提升分类器问题
- python - 在 Python 中覆盖一小部分代码的最佳实践
- r - R - 将每日格式的日期列转换为每小时粒度
- vue.js - 带有分页的 Vuetify 卡片
- javascript - gs函数的定义是当你从html代码调用函数时?
- reactjs - 通过 ref 从父组件访问功能组件的方法