使用因子和水平对数据进行分组

3

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

比如说我有以下数据:

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

我可以制作一个频率表,以便显示所有空单元格,类似于这样:
(factor(X, levels = c(0:max(X))))

不是显示每个可能值的频率,而是我想将大于5的值分组,以便表格上的级别为:0、1、2、3、4、5和>5

我该如何做?

2个回答

3

首先,您需要转换向量,使其具有唯一的条目,然后您可以在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


非常感谢。我卡在这里很久了。 - user1021000

1
Sacha已经给出了一个可行的答案,但是为了以后的参考,您可能需要熟悉一下cut函数,它被设计用来将连续变量分成块。
x <- cut(x, c(-Inf, 0:5, Inf), labels=c(0:5, ">5"))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接