Думаю, у меня не сложная проблема, но мои знания R довольно основны c, и поэтому я не могу найти ответ. У меня есть 4 переменные. Одним из них является группирующая переменная, которую я называю cluster
. Остальные 3 (ID
, IDman
, IDwoman
) являются удостоверениями личности. Примерно так:
cluster <- c("a", "a", "a", "b", "b", "b", "c", "c", "c")
ID <- c(1, 7, 18, 3, 3, 9, 25, 10, 19)
IDman <- c(1, 2, 3, 3, 3, 4, 10, 10, 6)
IDwoman <- c(5, 7, 9, 11, 12, 14, 19,19,5)
households <- data.frame(cluster, ID, IDman, IDwoman)
Фрейм данных (household
) в основном показывает лиц (ID
), которые находятся в домашнем хозяйстве (cluster
). Иногда эти люди являются браком, и эта информация предоставляется определенной комбинацией IDman и IDwoman: это происходит, когда ID
равно IDman
и ID
равно IDwoman
в пределах одного кластера. Например, для первого кластера (cluster = a или первые 3 строки) существует брак. IDman = 1 и IDwoman = 7 - это брак, потому что они находятся в одном домохозяйстве (кластер = a) и потому что ID и IDman равны 1 в первом ряду, но также ID и IDwoman равны 7 во втором (все это происходит в пределах кластер а).
Итак, мне нужно найти количество уникальных комбинаций для каждой cluster
ID-equals-IDman и ID-equals-IDwoman. Например, во втором cluster
у нас его нет (так как нет IDwoman = 9), а во втором cluster
у нас снова один, так как IDman = 10 и IDwoman = 19 появляются как в ID, так и в Повторение наблюдения IDman = 10 и IDwoman = 19 не учитывается. Результатом не должен быть набор данных, показывающий эти ссылки. Просто количество этих уникальных комбинаций на кластер.
Я не знаю, как это решить. Я пробовал вещи с помощью apply
или sapply
функций, но ни одна из них не работала.
Любая идея очень приветствуется.
Спасибо!