2013-08-02 4 views
0

측정 (시간)이 Person (ID)에 중첩 된 Networkpartners (NP)에 중첩되어있는 longformat에있는 데이터 세트가 있습니다. 다음은 보이는 것의 예입니다. 나는 3 개 새로운 변수를 만들 싶습니다 이제data.frame에서 새 열 만들기

ID NP Time Outcome 
1 11 1 4 
1 11 2 3 
1 11 3 NA 
1 12 1 2 
1 12 2 3 
1 12 3 3 
2 21 1 2 
2 21 2 NA 
2 21 3 NA 
2 22 1 4 
2 22 2 4 
2 22 3 4 

: 같은 (실제 데이터 세트는 행에 걸쳐 수천이있다)

a)이 측정의 결과에 더 NA가없는 Networkpartners의 수 () 특정 사람 (ID)은 시간이 1

b) 네트워크 참여자 수 (이 측정에서 결과에 NA가없는 사람) 시간 2에 특정 사람 (ID)

c) 시간당 특정 사람 (ID) 네트워크 참여자 수 3

그래서 나는이 같은 데이터 집합을 만들고 싶습니다 :

ID NP Time Outcome NP.T1 NP.T2 NP.T3 
1 11 1 4  2  2  1 
1 11 2 3  2  2  1 
1 11 3 NA  2  2  1 
1 12 1 2  2  2  1 
1 12 2 3  2  2  1 
1 12 3 3  2  2  1 
2 21 1 2  2  1  1 
2 21 2 NA  2  1  1 
2 21 3 NA  2  1  1 
2 22 1 4  2  1  1 
2 22 2 4  2  1  1 
2 22 3 4  2  1  1 

나는 당신의 도움이 정말 감사하겠습니다.

+0

매우 어려운 요청을 이해합니다. 설명을 좀 형식화 해 주시면보다 의미가 있습니다. –

+0

다시 작성하고 싶은 3 가지 변수에 대한 설명을 수정했습니다. – user2647568

답변

2

3 개가 아닌 하나의 변수 만 만들면됩니다. 나는 에 대한 plyr 패키지의 ddply을 사용 중입니다.

mydata<-structure(list(ID = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 
2L, 2L), NP = c(11L, 11L, 11L, 12L, 12L, 12L, 21L, 21L, 21L, 
22L, 22L, 22L), Time = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 
1L, 2L, 3L), Outcome = c(4L, 3L, NA, 2L, 3L, 3L, 2L, NA, NA, 
4L, 4L, 4L)), .Names = c("ID", "NP", "Time", "Outcome"), class = "data.frame", row.names = c(NA, 
-12L)) 


    library(plyr) 
    mydata1<-ddply(mydata,.(ID,Time),transform, NP.T=length(Outcome[which(Outcome !="NA")])) 
>mydata1 
    ID NP Time Outcome NP.T 
1 1 11 1  4 2 
2 1 12 1  2 2 
3 1 11 2  3 2 
4 1 12 2  3 2 
5 1 11 3  NA 1 
6 1 12 3  3 1 
7 2 21 1  2 2 
8 2 22 1  4 2 
9 2 21 2  NA 1 
10 2 22 2  4 1 
11 2 21 3  NA 1 
12 2 22 3  4 1 

업데이트 : 당신은 또한 ID 및 시간 (빗)를 결합 고유의 변수를 만들 수 interaction을 사용할 수 있습니다

mydata1<-ddply(mydata,.(ID,Time),transform, NP.T=length(Outcome[which(Outcome !="NA")]),comb=interaction(ID,Time)) 
+0

Ok. 세 측정 값과 각 측정 값에 대한 사람 수 (ID)의 네트워크 참여자 수의 평균과 sd를 어떻게 계산합니까? 나는 또한 네트워크 참여자 (NP)의 수에 대한 세 가지 방법 중 적어도 두 가지가 세 가지 측정에서 서로 다른 경우 질문에 대답하기 위해 반복적 인 측정에 대한 anova를하고 싶습니다. – user2647568

+0

@ Metrics : 데이터 세트에서 새 변수를 찾을 수 없습니다. 다시 도와 줄 수 있니? – user2647568

+0

위의 코드를 사용하여 그 작업을 수행 할 수있었습니다. 당신도 그렇게 할 수 있어야합니다! – Metrics

관련 문제