Вопрос
Мы работаем над проектом социального капитала, поэтому в нашем наборе данных есть список членов организации. Таким образом, каждый человек получает числовой идентификатор, а затем вспомогательный идентификатор для каждой группы, в которой он находится. Следовательно, единицей анализа является группа, в которой он находится. Одна из наших переменных - это трехбалльная шкала для типа группы, в которой он находится. Звучит достаточно просто?
Мы хотим вывести единицу анализа на индивидуальный уровень и сжать тип группы, в которую она входит, в переменную, обозначающую, в каком количестве групп они находятся.
Например, человек один входит в восемь групп. Из этих групп три (1), три (2) и две (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, и я не знаю, как выглядят ваши данные. Но нет никаких причин, почему это было бы невозможно.
Эти данные поступают из базы данных? Если это так, то может быть проще написать SQL-запрос для вычисления требуемого значения, чем делать это в R. Если вы описываете свою схему, здесь должно быть много людей, которые могли бы дать вам запрос, который вам нужен. р>