【问题标题】:Obtaining descriptive statistics of observations with years of complete data in R使用 R 中的多年完整数据获取观测的描述性统计
【发布时间】:2018-02-08 13:45:05
【问题描述】:

我有以下面板数据集

id year Value
1  1     50
2  1     55
2  2     40
3  1     48
3  2     54
3  3     24
4  2     24
4  3     57
4  4     30

我想获取观测信息可用年数的描述性统计数据,例如:只有一年信息的个人数量为 1,只有两年信息的个人数量为 1 ,而拥有三年可用信息的个人数量为 2。

【问题讨论】:

  • 你能分享你想要的输出吗?

标签: r panel-data


【解决方案1】:

我们可以使用data.table。将'data.frame'转换为'data.table'(setDT(df1)),按'id'分组,得到'year'的唯一编号长度,按该列分组,得到行数(.N )

library(data.table)
setDT(df1)[,  uniqueN(year), .(id)][, .N, V1]
#   V1 N
#1:  1 1
#2:  2 1
#3:  3 2

【讨论】:

    【解决方案2】:

    在使用table 的基础R 中,它是更快的表亲tabulate

    table(tabulate(dat$id))
    
    1 2 3 
    1 1 2 
    

    table(table(dat$id))
    

    转换为data.frame:

    data.frame(table(tabulate(dat$id)))
      Var1 Freq
    1    1    1
    2    2    1
    3    3    2
    

    【讨论】:

      【解决方案3】:
      lapply(split(df$id, ave(df$year, df$id, FUN = length)), function(x) length(unique(x)))
      #$`1`
      #[1] 1
      
      #$`2`
      #[1] 1
      
      #$`3`
      #[1] 2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-13
        • 1970-01-01
        • 1970-01-01
        • 2021-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多