【问题标题】:R grouping data with factors and levelsR用因子和水平对数据进行分组
【发布时间】:2011-12-11 11:22:04
【问题描述】:

我正在尝试制作一个频率表,将值分组到有限数量的 bin 中。

说我有数据

X <- c(1,2,3,4,3,9, 20)

我可以制作一个频率表,使其显示所有空单元格,如下所示:

(factor(X, levels = c(0:max(X))))

我不想显示每个可能值的频率,而是将值 &gt;5 分箱,以便表格上的级别为:0, 1, 2, 3, 4, 5, and &gt;5

我该怎么做?

【问题讨论】:

    标签: r grouping r-factor


    【解决方案1】:

    您首先需要转换向量,使其具有唯一的条目,然后您可以在factor() 函数中添加缺少的级别:

    X <- c(1,2,3,4,3,9,20)
    X <- ifelse(X>5,">5",X)
    X <- factor(X,levels=c(0:5,">5"))
    

    这会导致:

    X [1] 1 2 3 4 3 >5 >5 等级:0 1 2 3 4 5 >5

    【讨论】:

    • 非常感谢。多年来一直坚持这一点。
    【解决方案2】:

    Sacha 已经为您提供了一个可行的答案,但为了将来参考,您可能需要熟悉 cut 函数,该函数旨在将连续变量分解为块。

    x <- cut(x, c(-Inf, 0:5, Inf), labels=c(0:5, ">5"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 2016-03-06
      相关资源
      最近更新 更多