Единица анализа преобразования - PullRequest
0 голосов
/ 11 сентября 2009

Мы работаем над проектом социального капитала, поэтому в нашем наборе данных есть список членов организации. Таким образом, каждый человек получает числовой идентификатор, а затем дополнительный идентификатор для каждой группы, в которой он находится. Следовательно, единицей анализа является группа, в которой он находится. Одна из наших переменных - это трехбалльная шкала для типа группы, в которой он находится. Звучит достаточно просто?

Мы хотим вывести единицу анализа на индивидуальный уровень и сжать тип группы, в которую она входит, в переменную, обозначающую, сколько разных типов групп они составляют.

Например, человек один входит в восемь групп. Из этих групп три (1), три (2) и две (3). В идеале индивидуальная переменная уровня должна выглядеть как 3, потому что она входит во все три типа групп.

Возможно ли это как минимум?

Ответы [ 2 ]

3 голосов
/ 11 сентября 2009
##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 голос
/ 11 сентября 2009

Я думаю, что вы спрашиваете, возможно ли подсчитать количество уникальных типов группы, к которой принадлежит человек.

Если это так, то это, безусловно, возможно.

Я бы не смог рассказать вам, как это сделать в R, так как я не знаю много R, и я не знаю, как выглядят ваши данные. Но нет никаких причин, почему это было бы невозможно.

Эти данные поступают из базы данных? Если это так, то может быть проще написать SQL-запрос для вычисления требуемого значения, чем делать это в R. Если вы описываете свою схему, здесь должно быть много людей, которые могли бы дать вам запрос, который вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...