代码之家  ›  专栏  ›  技术社区  ›  djq

如何计算一个值在一个数据帧的列中出现的次数?

  •  5
  • djq  · 技术社区  · 16 年前

    是否有一种简单的方法来识别一个值在数据帧的向量或列中的次数?我基本上想要一个柱状图的数值,但是我不知道如何访问它。

    # sample vector
    a <- c(1,2,1,1,1,3,1,2,3,3)
    
    #hist
    hist(a)
    

    谢谢您。

    更新:

    根据德克的建议,我正在使用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 回复  |  直到 13 年前
        1
  •  9
  •   Dirk is no longer here    16 年前

    试试这个:

    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
  •  20
  •   mbq    16 年前

    使用 table 功能。

        3
  •  4
  •   nico    16 年前

    如果你想用 hist 您不需要像以前那样指定中断,只需使用 seq 功能

    br <- seq(0.9, 9.9, 1)
    num <- hist(a, br, plot=F)$counts
    

    此外,如果您正在寻找特定的值,也可以使用 which .

    例如:

    num <- length(which(a == 1))
    
        4
  •  2
  •   Slak    13 年前

    除了性能差异 hist 和 table 对于Dirk和MBQ已经指出的许多独特的值,我还想提到功能上的其他差异。

    hist$counts 对于没有任何箱子的箱子,也会给您零计数。如果你想确定垃圾箱的数量(例如,条形图上的条形图),这可能非常有价值,最终会出现在下面的图中。

    桌子 另一方面,只会为现有值提供计数。

    您可能还需要检查 right 选择权 希斯特 它控制你的休息(间隔)是否正确关闭。