2012-01-27 70 views
1

我知道這應該很簡單,但是我遇到了使用ddply拆分數據框的問題。使用ddply轉儲

ID = c(1,1,1,2,2,2,2,3,4,4,4,4) 
date = c("4th Nov","4th Nov","5th Nov","5th Nov","6th Nov","7th Nov","7th Nov","8th Nov","6th Nov","6th Nov","7th Nov","7th Nov") 
df<-data.frame(ID,date) 

所有我要的是找出唯一的ID我有一個非常大的數據集(所以在上面的例子中,我只想得到4)的數量。我的真實數據集中的數字並不是連續的,所以我不能只計算最大值。

我一直在試圖讓代碼分裂數據框,所以每個唯一的ID將只包含一次在新的數據框,然後我希望只是計算行數,以給我總數。也許我甚至不需要ddply - 我可以在一行代碼中執行此操作嗎?

對不起,我提前感謝您的幫助!

回答

4

的最快,最簡單的方法是使用lengthunique你的ID的載體:

> length(unique(df$ID)) 
[1] 4 
+0

太棒了 - 非常感謝! – 2012-01-27 11:40:09

0

你不需要ddply在這裏,但這裏是解決與ddply:

nrow(ddply(df,.(ID),head,1)) 
0

這爲我工作:

records=ddply(
       df, .(date), 
       summarise, 
       days=length(unique(ID))    
      )