2009-09-11 3 views
0

우리는 데이터가 개인의 조직 구성원 목록을 갖도록 소셜 캐피털 프로젝트를 진행하고 있습니다. 따라서 각 사람은 숫자가있는 ID와 그룹에 속한 각 그룹의 하위 ID를 얻습니다. 따라서 분석 단위는 그룹에 속합니다. 변수 중 하나는 그룹 유형에 대한 3 점 척도입니다. 충분히 간단하니?분석 단위 변환

우리는 개인 수준에 분석의 단위를 가져오고 그들이에 얼마나 많은 그룹의 다른 유형 나타내는 변수로 인 그룹의 유형을 응축하고 싶습니다. 예를 들어

, 사람 하나가 여덟에 여러 떼. 그 그룹 중 세 개는 (1), 세 개는 (2), 두 개는 (3)입니다. 그녀가 세 가지 유형의 그룹에 속해 있기 때문에 개별 레벨 변수는 이상적으로 3 일 것입니다.

적어도 가능합니까?

+0

실제 샘플 데이터를 추가하면 더 좋은 답변을 얻을 수 있습니다. 나는 명백한 것처럼 보이는 3 가지 방법을 생각할 수 있지만 그 답은 데이터가 어떻게 형성되는지에 달려있다. 데이터의 각 행이 사람입니까? 그렇다면, subID 필드에 무리가 있습니까? 또는 각 행은 person + subid의 조합입니다. –

+1

JD가 말한 바. 그러나 가짜 데이터를 생성하는 방법에 대한 내 대답을 확인하고 보유한 데이터에 맞게 변경할 수 있습니다. –

+0

당신은 훌륭한 스택 오버플로 시민 인 에두아르도입니다. –

답변

3
##simulate data 
##individuals 
n <- 10 
## groups 
g <- 5 
## group types 
gt <- 3 
## individuals*group membership 
N <- 20 
## inidividuals data frame 
di <- data.frame(individual=sample(1:n,N,replace=TRUE), 
       group=sample(1:g,N, replace=TRUE)) 
## groups data frame 
dg <- data.frame(group=1:g, type=sample(1:gt,g,replace=TRUE)) 
## merge 
dm <- merge(di,dg) 
## order - not necessary, but nice 
dm <- dm[order(dm$individual),] 
## group type per individual 
library(plyr) 
dr <- ddply(dm, "individual", function(x) length(unique(x$type))) 

> head(dm) 
    group individual type 
2  2   1 2 
8  2   1 2 
20  5   1 1 
9  3   3 2 
12  3   3 2 
17  4   3 2 

> head(dr) 
    individual V1 
1   1 2 
2   3 1 
3   4 2 
4   5 1 
5   6 1 
6   7 1 
1

개인이 속한 고유 한 유형의 그룹 수를 계산할 수 있는지 여부를 묻는 것입니다.

그렇다면 확실히 가능합니다.

많은 R을 알지 못해서 R에서 수행하는 방법을 알 수 없으며 데이터가 어떻게 생겼는지 알 수 없습니다. 그러나 그것이 가능하지 않은 이유는 없습니다.

이 데이터는 데이터베이스에서 제공되는 것입니까? 그렇다면 R로 수행하는 것이 아니라 원하는 값을 계산하기 위해 SQL 조회를 작성하는 것이 더 쉬울 수도 있습니다. 스키마를 설명하는 경우 필요한 조회를 제공 할 수있는 많은 사람들이 있어야합니다.

관련 문제