我有以下面板数据获得观测的描述性统计与年完整数据的中的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的数量,个人只用两年的信息的数量是一个,而用三年时间的可用信息的个体数量为2
我有以下面板数据获得观测的描述性统计与年完整数据的中的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的数量,个人只用两年的信息的数量是一个,而用三年时间的可用信息的个体数量为2
基础R使用table
和它的速度更快表妹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
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
我们可以使用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
你能分享你想要的输出吗? – www