R 如何将数值变量更改为分类变量

R 如何将数值变量更改为分类变量,r,vector,replace,R,Vector,Replace,我正在尝试将“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

我正在尝试将“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的类别
任何人都可以支持这个问题?

我们可以使用
字母
并相应地提取值

输入


这里的要点是,我们可以使用
x
按位置提取另一个向量的值

如果目标是改变1=x,2=y和3=z(或其他),我们可以做什么

c("x", "y", "z")[x]
#[1] "x" "y" "y" "z" "z" "z"

感谢@zx8754提供的有用意见

在R中处理分类变量的一种方法是通过因子。从帮助(
?factor
)中:

函数
factor
用于将向量编码为因子(术语 “类别”和“枚举类型”也用于系数)。如果 参数
ordered
为真,则假定因子级别为有序。 为了与S兼容,还有一个函数
有序

这样,您可以将任意字符串指定为因子级别:

levels <- factor(c("category a", "category b", "category c"))
rep(1:3, 2)
[1] 1 2 3 1 2 3
levels[rep(1:3, 2)]
[1] category a category b category c category a category b category c
Levels: category a category b category c

levels您可以正确使用
cut
分配
中断。读取
?剪切

cut(x, 0:3, c("a", "b", "c"))

#[1] a b b c c c
#Levels: a b c
使用@markus的数据

x <- rep(1:3, 1:3)

x可能A,B,C只是一个例子,可以是任何字符串。我试过了,对我来说没有效果:@zx8754很好。尽管我试图坚持OP给出的示例,但如果这不是他们想要的,我将删除/编辑。我想说明如何使用字母。不需要删除,也许需要指出,它可以是任何字符串向量
c(“A”、“B”、“c”)[x]
c("x", "y", "z")[x]
#[1] "x" "y" "y" "z" "z" "z"
levels <- factor(c("category a", "category b", "category c"))
rep(1:3, 2)
[1] 1 2 3 1 2 3
levels[rep(1:3, 2)]
[1] category a category b category c category a category b category c
Levels: category a category b category c
levels <- factor(c("A", "B", "C"))
rep(1:3, 2)
[1] 1 2 3 1 2 3
levels[rep(1:3, 2)]
[1] A B C A B C
Levels: A B C
cut(x, 0:3, c("a", "b", "c"))

#[1] a b b c c c
#Levels: a b c
x <- rep(1:3, 1:3)