R 如何将数值变量更改为分类变量
我正在尝试将“Wine”变量更改为分类变量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_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)