首页 > 解决方案 > 如何将数值变量更改为分类变量

问题描述

我试图将“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

任何人都可以支持这个问题?

标签: rvectorreplace

解决方案


我们可以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 的有用评论。


推荐阅读