2012-01-27 3 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가 새 데이터 프레임에 한 번만 포함될 것입니다. 그런 다음 전체 수를 계산하기 위해 행 수를 계산하기를 바랍니다. 아마도 나는 ddply가 필요조차하지 않습니다 - 단지 한 줄의 코드에서이 작업을 수행 할 수 있습니까?

내 무지 때문에 죄송합니다. 사전에 도움을 주셔서 감사합니다.

답변

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))    
      ) 
관련 문제