【问题标题】:Making a Numeric Variable Categoric [duplicate]制作数字变量类别[重复]
【发布时间】:2016-04-29 16:12:48
【问题描述】:

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

【问题讨论】:

标签: r variables


【解决方案1】:

函数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 已被选中。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    这是一个使用嵌套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)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 2016-11-29
      • 2012-12-17
      • 1970-01-01
      • 2012-06-30
      相关资源
      最近更新 更多