У меня есть такие данные:
ID membership AdultChild
1 1 A
2 1 A
3 2 A
4 2 C
5 2 C
6 3 A
7 3 A
: : :
Я хочу сгруппировать по членству и применить 'код' после подсчета переменной AdultChild , т.е.
ID membership AdultChild code
1 1 A x1
2 1 A x1
3 2 A x2
4 2 C x2
5 2 C x2
6 3 A x1
7 3 A x1
: : : :
У меня будут условия, подобные:
count <- function(x){
if(sum(x == "A") == 2 && sum(x == "C") == 0){
code <<- x1
}else if (sum(x == "A") == 1 & sum(x == "C") >= 1){
code <<- x2
}else {
code <<- X3
}
Я пытался использовать dplyr для группировки и изменения, используя функцию выше, чтобы добавить новую переменную с именем code .Я также думал об использовании функции aggregate , но мне не повезло.
df.2 <- df %>% group_by(membership)
%>% mutate(n = count(AdultChild)) %>%
ungroup()
df.2 <- aggregate.data.frame(df, by = membership, FUN =
count(df$AdultChild))
По сути, я хочу новую переменную, которая будет определяться с использованием определенных условий и применяться к каждому идентификатору при группировке по членству.
Заранее спасибо.