У меня есть датафрейм (всего 5000 строк), который выглядит примерно так:
total_data
Ind.Code Stage Group Behaviour
1 Number1 first a INT
2 Number2 first a EAT
3 Number2 second a INT
4 Number1 third a STA
5 Number3 first a INT
6 Number1 second b EAT
7 Number1 first b PAS
8 Number3 third b EAT
9 Number2 third b INT
10 Number1 first b PAS
Теперь я хочу создать что-то вроде этого:
summarized_data
Ind.Code Stage Group Behaviour Count
1 Number1 first a INT 1
2 Number1 first a EAT 0
3 Number1 first a STA 0
4 Number1 first a PAS 0
5 Number1 second a INT 0
6 Number1 second a EAT 0
7 Number1 second a STA 0
8 Number1 second a PAS 0
9 Number1 third a INT 0
10 Number1 third a EAT 0
11 Number1 third a STA 1
12 Number1 third a PAS 0
И так далее для другие инд. коды и группы.
Однако я не могу найти лучший способ сделать это. Я пробовал функцию aggregate
:
aggregate(as.integer(total_data$Behaviour),
by = list(total_data$Ind.Code, total_data$Stage, total_data$Group, total_data$Behaviour,
FUN = sum)
Но, по-видимому, для некоторых точек данных это работает нормально, в то время как для других кажется, что значение 'Count' удваивается.
Может кто-нибудь помочь мне найти правильный код?
Большое спасибо заранее.