我有一个变量glyhb,它是从2.85到16.11的数字。我怎样才能把它变成一个分类变量,其中5.7以下的所有东西都是一个类别,从5.7到6.4的所有东西都是另一个,而第三个东西是6.5或更高。enter image description here
答案 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
指定这些因素(级别)的标签。在这种情况下,已选择级别cat1
,cat2
和cat3
。
希望这有帮助。
答案 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)))