是否有一种简单的方法可以确定值在数据框的向量或列中的次数?我基本上想要直方图的数值,但我不知道如何访问它。
# sample vector
a <- c(1,2,1,1,1,3,1,2,3,3)
#hist
hist(a)
谢谢。
更新:
关于Dirk的建议我正在使用hist。当我知道我的所有值都是整数时,是否有比将范围指定为1.9,2.9等更好的方法?
hist(a, breaks=c(1,1.9,2.9,3.9,4.9,5.9,6.9,7.9,8.9,9.9), plot=FALSE)$counts
答案 0 :(得分:20)
使用table
功能。
答案 1 :(得分:9)
试试这个:
R> a <- c(1,2,1,1,1,3,1,2,3,3)
R> b <- hist(a, plot=FALSE)
R> str(b)
List of 7
$ breaks : num [1:5] 1 1.5 2 2.5 3
$ counts : int [1:4] 5 2 0 3
$ intensities: num [1:4] 1 0.4 0 0.6
$ density : num [1:4] 1 0.4 0 0.6
$ mids : num [1:4] 1.25 1.75 2.25 2.75
$ xname : chr "a"
$ equidist : logi TRUE
- attr(*, "class")= chr "histogram"
R>
R 面向对象,大多数方法都会为您提供有意义的结果。使用它们。
答案 2 :(得分:4)
如果你想使用hist
,你不需要像你那样指定休息时间,只需使用seq
函数
br <- seq(0.9, 9.9, 1)
num <- hist(a, br, plot=F)$counts
此外,如果您要查找特定值,也可以使用which
。
例如:
num <- length(which(a == 1))
答案 3 :(得分:2)
除了Dirk和mbq已经指出的许多唯一值的情况下hist
和table
之间的性能差异之外,我还想提及功能上的其他差异。
hist$counts
也会为没有任何案件的垃圾箱提供零计数。如果您想对下面的图中最终会出现的箱数(例如条形图上的条形)有信心,这可能非常有价值。
table
只会为您提供现有值的计数。
您可能还想查看right
hist
选项,该选项控制您的休息(间隔)是否正确关闭。