2 votes

Comment renommer des variables dans cbind/aggregate ?

J'ai la ligne de code suivante :

inc_ag <- aggregate(cbind(inc2$SUM_violent, inc2$SUM_nonviolent) ~ District + MicrozoneID + Period, data = inc2, FUN = sum, na.rm=TRUE)

        District          MicrozoneID                    Period V1 V2
1   Northwestern    Northwestern: 61A   2019-02-06 - 2019-03-06 3   1
2   Northwestern    Northwestern: 61B   2019-02-06 - 2019-03-06 1   0
3   Northwestern    Northwestern: 61D   2019-02-06 - 2019-03-06 3   2
4   Northwestern    Northwestern: 62A   2019-02-06 - 2019-03-06 0   2

La sortie de ce code contient les variables somme violente et somme non violente sous la forme V1 et V2. Comment puis-je les renommer afin de les appeler incidents violents et incidents non violents ?

De même, lorsque je fais le code "long"

inc_aglong <- xtabs(SUM_violent ~ District + MicrozoneID + Period, data = inc_ag)
inc_aglong <- as.data.frame(inc_aglong)

        District     MicrozoneID                     Period Freq
1   Northwestern    Northern: 53A   2019-02-06 - 2019-03-06 0
2   Southern        Northern: 53A   2019-02-06 - 2019-03-06 0
3   Southwestern    Northern: 53A   2019-02-06 - 2019-03-06 0
4   Northwestern    Northern: 53B   2019-02-06 - 2019-03-06 0
5   Southern        Northern: 53B   2019-02-06 - 2019-03-06 0
6   Southwestern    Northern: 53B   2019-02-06 - 2019-03-06 0
7   Northwestern    Northwestern: 61A   2019-02-06 - 2019-03-06 3

Les noms des variables ne s'affichent pas non plus, et je ne peux pas ajouter plus d'une variable de somme.

Nous vous remercions.

dput :

structure(list(District = c("Northwestern", "Northwestern", "Northwestern", 
"Northwestern"), MicrozoneID = c("Northwestern: 61A", "Northwestern: 61B", 
"Northwestern: 61D", "Northwestern: 62A"), Period = c("2019-02-06 - 2019-03-06", 
"2019-02-06 - 2019-03-06", "2019-02-06 - 2019-03-06", "2019-02-06 - 2019-03-06"
), V1 = c(3, 1, 3, 0), V2 = c(1, 0, 2, 2)), class = "data.frame", row.names = c(NA, 
-4L))

2voto

Matt Points 3750

Voici une dplyr solution :

inc_ag <- aggregate(cbind(inc2$SUM_violent, inc2$SUM_nonviolent) ~ District + MicrozoneID + Period, data = inc2, FUN = sum, na.rm=TRUE) %>%
rename(violentIncidents = V1, nonviolentIncidents = V2)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X