R中计算unique value 的个数

COS论坛 | 统计之都 讨论区 统计学世界 数理统计 R中计算unique value 的个数

Tagged: 

该主题包含 3 条回复,4个帖子,最后由  t1w13 天, 17 小时 之前 更新。

查看 4 个帖子 - 1 到 4(总计 4 个)
  • 作者
    帖子
  • 1 楼

    jid24
    Participant

    刚刚接触R,求问如何计算矩阵中某一列unique value的个数。
    例如,矩阵如下。
    month year
    1 2000
    2 2000
    1 2000
    1 2011
    2 2011

    现在需要求2000年中有几个月的数据被统计过。答案应当是2个。这道题怎么应该用R来表达。
    跪谢。

    2 楼

    ®γσ, Lian Hu Eng
    Participant

    是这样吗?

    
    > df <- data_frame(month = c(1, 2, 1, 1, 2), year = c(rep(2000, 3), rep(2011, 2)), sales = runif(5)  * 1000)
    > df
    # A tibble: 5 × 3
      month  year    sales
      <dbl> <dbl>    <dbl>
    1     1  2000 818.5468
    2     2  2000 794.9369
    3     1  2000 477.8024
    4     1  2011 692.4940
    5     2  2011 891.0750
    > ddply(df, .(year), summarise, sales = sum(sales)) %>% tbl_df
    # A tibble: 2 × 2
       year    sales
      <dbl>    <dbl>
    1  2000 2091.286
    2  2011 1583.569
    

    白戸則道:実に面白いですね!
    http://github.com/scibrokes/owner

    3 楼

    XD-DENG
    Participant

    回复 2 楼®γσ, Lian Hu Eng
    可能略复杂了:)

    最简单的思路:length(unique(dat$month[dat$year == 2000]))

    4 楼

    t1w1
    Participant

    还有更简单的方式 table(dat$month)
    返回的结果为:
    2000 2011
    2 2

查看 4 个帖子 - 1 到 4(总计 4 个)

您必须先登录才能回复该主题。