Pregunta

Estamos trabajando en un proyecto de capital social para que nuestro conjunto de datos tenga una lista de las membresías organizacionales de un individuo. Por lo tanto, cada persona obtiene una ID numérica y luego una ID secundaria para cada grupo en el que están. La unidad de análisis, por lo tanto, es el grupo en el que se encuentra. Una de nuestras variables es una escala de tres puntos para el tipo de grupo que es. ¿Suena bastante simple?

Queremos llevar la unidad de análisis a un nivel individual y condensar el tipo de grupo en una variable que indica cuántos tipos diferentes de grupos forman.

Por ejemplo, la persona uno está en ocho grupos. De esos grupos, tres son (1s), tres son (2s) y dos son (3s). El aspecto de la variable de nivel individual, idealmente, es 3, porque está en los tres tipos de grupos.

¿Es esto posible en lo más mínimo?

¿Fue útil?

Solución

##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

Otros consejos

Creo que lo que estás preguntando es si es posible contar la cantidad de tipos de grupos únicos a los que pertenece una persona.

Si es así, entonces eso es ciertamente posible.

No podría decirte cómo hacerlo en R ya que no sé mucho de R y no sé cómo son tus datos. Pero no hay razón por la que no sea posible.

¿Estos datos provienen de una base de datos? Si es así, entonces podría ser más fácil escribir una consulta SQL para calcular el valor que desea, en lugar de hacerlo en R. Si describe su esquema, debería haber muchas personas aquí que podrían darle la consulta que necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top