2012-01-27 4 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) 

私が欲しいのは、私は(そうの例では、私はちょうど4を得るでしょう上の)非常に大規模なデータセットを持っている固有のIDの数をうまくすることです。私の実際のデータセットの数字は連続していませんので、最大限に働くことはできません。

データフレームを分割するコードを取得しようとしていたので、それぞれの固有のIDが新しいデータフレームに1回だけ含まれるようになりました。次に、合計を与えるために行数を数えたいと思っていました。多分私はddplyする必要はありません - 私はちょうど1行のコードでこれを行うことができますか?

ご迷惑をおかけして申し訳ありません。ご協力いただきありがとうございます。

答えて

4

最速と最も簡単な方法は、IDのあなたのベクトルにlengthuniqueを使用することです:あなたはddplyここでは必要ありません

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

それは素晴らしいです - ありがとう! –

0

が、ここでddplyとソリューションです:

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

この私のために働いた:

records=ddply(
       df, .(date), 
       summarise, 
       days=length(unique(ID))    
      ) 
関連する問題