3

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

说我有数据

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

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

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

我不想显示每个可能值的频率,而是想对值进行>5分类,以便表上的级别是:0, 1, 2, 3, 4, 5, and >5

我怎样才能做到这一点?

4

2 回答 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

于 2011-12-11T11:47:55.273 回答
1

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

x <- cut(x, c(-Inf, 0:5, Inf), labels=c(0:5, ">5"))
于 2011-12-11T14:59:51.547 回答