Я наконец сделал это, но очень долго
Прежде всего, для каждого месяца я создавал набор данных для суммирования посещений.Здесь я публикую то, что сделал только за январь
Gennaio <- subset(visite_cliente_date, January == 1)
Gennaio$Month <- NULL
Gennaio$February <- NULL
Gennaio$March <- NULL
Gennaio$April <- NULL
Gennaio$May <- NULL
Gennaio$June <- NULL
Gennaio$July <- NULL
Gennaio$August <- NULL
Gennaio$September <- NULL
Gennaio$October <- NULL
Gennaio$November <- NULL
Gennaio$Dicember <- NULL
Gennaio <- aggregate(Gennaio$January, list("ID" = Gennaio$CodCliente), sum)
Gennaio$January <- Gennaio$x
Gennaio$x <- NULL
head(Gennaio)
ID January
1 41 1
2 94 1
3 106 5
4 111 1
5 113 1
6 118 1
Затем я объединил все мои наборы данных, заменив значения NA на 0
> Visite_mesi <- merge(Gennaio, Febbraio, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Marzo, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Aprile, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Maggio, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Giugno, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Luglio, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Agosto, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Settembre, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Ottobre, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Novembre, by="ID", all=TRUE)
> Visite_mesi <- merge(Visite_mesi, Dicembre, by="ID", all=TRUE)
> Visite_mesi[is.na(Visite_mesi)] <- 0
>
> head(Visite_mesi)
ID January February March April May June July August September
1 41 1 0 0 0 0 0 0 0 0
2 94 1 2 1 1 1 1 0 0 0
3 106 5 9 6 3 4 6 1 7 7
4 111 1 3 1 1 3 5 0 0 0
5 113 1 1 0 0 0 0 0 0 3
6 118 1 0 1 1 0 1 0 1 0
October November Dicember
1 0 0 0
2 1 0 0
3 3 4 5
4 0 0 0
5 0 0 0
6 0 0 0
В конце я преобразовал значения больше 2 в 1
Visite_mesi$January[Visite_mesi$January >= 2] <- 1
Visite_mesi$February[Visite_mesi$February >= 2] <- 1
Visite_mesi$March[Visite_mesi$March >= 2] <- 1
Visite_mesi$April[Visite_mesi$April >= 2] <- 1
Visite_mesi$May[Visite_mesi$May >= 2] <- 1
Visite_mesi$June[Visite_mesi$June >= 2] <- 1
Visite_mesi$July[Visite_mesi$July >= 2] <- 1
Visite_mesi$August[Visite_mesi$August >= 2] <- 1
Visite_mesi$September[Visite_mesi$September >= 2] <- 1
Visite_mesi$October[Visite_mesi$October >= 2] <- 1
Visite_mesi$November[Visite_mesi$November >= 2] <- 1
Visite_mesi$Dicember[Visite_mesi$Dicember >= 2] <- 1
В конце я просто суммировал все значения в столбцах месяца, и поэтому я создал переменную, которую я хотел
> Visite_mesi$sum_month <- rowSums( Visite_mesi[,2:13] )
> head(Visite_mesi)
ID January February March April May June July August September
1 41 1 0 0 0 0 0 0 0 0
2 94 1 1 1 1 1 1 0 0 0
3 106 1 1 1 1 1 1 1 1 1
4 111 1 1 1 1 1 1 0 0 0
5 113 1 1 0 0 0 0 0 0 1
6 118 1 0 1 1 0 1 0 1 0
October November Dicember sum_month
1 0 0 0 1
2 1 0 0 7
3 1 1 1 12
4 0 0 0 6
5 0 0 0 3
6 0 0 0 5