2017-08-30 88 views
0

我有以下面板數據獲得觀測的描述性統計與年完整數據的中的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

+1

你能分享你想要的輸出嗎? – www

回答

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