質問

ソーシャルキャピタルプロジェクトに取り組んでいるので、データセットには個人の組織メンバーシップのリストが含まれます。したがって、各個人は、数値IDを取得し、次に各グループのサブIDを取得します。したがって、分析の単位は、彼らが属するグループです。変数の1つは、グループのタイプの3ポイントスケールです。簡単に聞こえますか?

分析単位を個々のレベルに持ち込み、それが属するグループのタイプを、それらが属するグループのタイプの数を示す変数に凝縮します。

たとえば、人1は8つのグループに属します。これらのグループのうち、3つは(1s)、3つは(2s)、2つは(3s)です。個々のレベル変数は、理想的には3になります。なぜなら、彼女は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

他のヒント

あなたが求めているのは、個人が属するグループのユニークなタイプの数を数えることができるかどうかだと思います。

もしそうなら、それは確かに可能です。

多くのRを知らないので、Rでそれを行う方法を説明することはできません。また、データがどのように見えるかわかりません。しかし、それが不可能になる理由はありません。

このデータはデータベースからのものですか?その場合、Rで行うよりも、必要な値を計算するSQLクエリを作成する方が簡単な場合があります。スキーマを説明する場合、必要なクエリを提供できる人がたくさんいるはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top