在R中获得具有多年完整数据的观察的描述性统计

时间:2017-08-30 18:19:18

标签: r

我有以下面板数据集

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。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

.N

答案 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