Question

Nous travaillons sur un projet de capital social, notre ensemble de données contient donc une liste des appartenances organisationnelles d'un individu. Chaque personne reçoit donc un identifiant numérique, puis un identifiant secondaire pour chaque groupe dans lequel elle se trouve. L'unité d'analyse est donc le groupe dans lequel elle se trouve. L'une de nos variables est une échelle à trois points pour le type de groupe dont il s'agit. Cela semble assez simple?

Nous voulons amener l'unité d'analyse au niveau individuel et condenser le type de groupe qui la compose en une variable indiquant le nombre de types de groupes dans lesquels ils se trouvent.

Par exemple, la première personne est composée de huit groupes. Parmi ces groupes, trois sont (1), trois sont (2) et deux sont (3). Idéalement, la variable de niveau individuel devrait ressembler à 3, car elle se trouve dans les trois types de groupes.

Est-ce possible au minimum?

Était-ce utile?

La solution

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

Autres conseils

Je pense que ce que vous demandez, c'est s'il est possible de compter le nombre de types uniques de groupe auxquels un individu appartient.

Si c'est le cas, c'est certainement possible.

Je ne saurais vous dire comment le faire dans R puisque je ne connais pas beaucoup R et que je ne sais pas à quoi ressemblent vos données. Mais il n'y a aucune raison pour que cela ne soit pas possible.

Ces données proviennent-elles d'une base de données? Dans ce cas, il serait peut-être plus facile d'écrire une requête SQL pour calculer la valeur souhaitée plutôt que de le faire en R. Si vous décrivez votre schéma, il devrait y avoir beaucoup de personnes ici qui pourraient vous donner la requête dont vous avez besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top