制作数字变量分类

时间:2016-04-29 16:12:49

标签: r variables

我有一个变量glyhb,它是从2.85到16.11的数字。我怎样才能把它变成一个分类变量,其中5.7以下的所有东西都是一个类别,从5.7到6.4的所有东西都是另一个,而第三个东西是6.5或更高。enter image description here

2 个答案:

答案 0 :(得分:4)

函数cut()根据参数breaks中定义的值将数字向量划分为段。在这种情况下,我们可以包含选项right=FALSE以指定值5.7应属于类别2,并且值6.5应分配给类别3.默认值是在相应的右边界处包含值段。

cut(glyhb, breaks=c(0,5.7,6.5,Inf), right=FALSE, labels=paste0("cat", c(1:3))

默认情况下,cut()返回分类变量的向量。我们可以使用选项labels指定这些因素(级别)的标签。在这种情况下,已选择级别cat1cat2cat3

希望这有帮助。

答案 1 :(得分:1)

以下是使用嵌套ifelse的示例:

set.seed(999)
glyhb <- runif(100, 2.85, 16.11)
categorical_glyhb <- factor(ifelse(glyhb >= 6.5, 3, ifelse(glyhb >= 5.7, 2, 1)))