如何计算值在数据框的列中出现的次数?

时间:2010-07-05 20:30:25

标签: r statistics

是否有一种简单的方法可以确定值在数据框的向量或列中的次数?我基本上想要直方图的数值,但我不知道如何访问它。

# 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

4 个答案:

答案 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已经指出的许多唯一值的情况下histtable之间的性能差异之外,我还想提及功能上的其他差异。

hist$counts也会为没有任何案件的垃圾箱提供零计数。如果您想对下面的图中最终会出现的箱数(例如条形图上的条形)有信心,这可能非常有价值。

另一方面,

table只会为您提供现有值的计数。

您可能还想查看right hist选项,该选项控制您的休息(间隔)是否正确关闭。