想象一下以下非常简单的数据集:
Variable
A
B
B
C
D
D
D
E
F
F
F
我想要得到的是这些值出现频率频率的直方图。如果您只对该数据运行hist(),那么您将获得每个值的计数,但我真正想要的是:
+
+ +
+++
123
但是,你知道,不是ASCII艺术。主要是,它将数据集从可变的特定频率折叠到说"三个值出现一次,一个值出现两次,两个值出现三次。"
答案 0 :(得分:3)
使用table
的嵌套调用。以下是使用iris
中的变量的示例:
> table(iris$Sepal.Width)
2 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4 4.1 4.2 4.4
1 3 4 3 8 5 9 14 10 26 11 13 6 12 6 4 3 6 2 1 1 1 1
> table(table(iris$Sepal.Width))
1 2 3 4 5 6 8 9 10 11 12 13 14 26
5 1 3 2 1 3 1 1 1 1 1 1 1 1
调用table
一次会告诉您每个值出现的频率,在该表上调用table
然后会为您提供不同计数的频率。然后,您可以创建第二个表的barplot
以显示该结果:
barplot(table(table(iris$Sepal.Width)))
注意:一般来说,hist
用于汇总连续变量(指定数量或大小的" bins"),而barplot
用于显示计数。
答案 1 :(得分:2)
您可以运行table
,对所有数据进行拼写,然后使用您想要的休息时间hist
{/ 1>}:
hist(table(Variable))
答案 2 :(得分:1)
您可以使用descr
包获得所需的结果。
require(descr)
data("mtcars")
# Get the plot
freq(mtcars$gear, plot = TRUE)
会给你这张图表:
答案 3 :(得分:0)
看起来你想要一个茎叶图,可以用stem
获得。