J'essaie de tracer des données de date quotidiennes pour les habitudes d'utilisation des antibiotiques sur plusieurs années, mais je veux pouvoir tracer ces dates quotidiennes comme quartiers / an pour condenser la parcelle. J'ai essayé de nombreuses solutions que j'ai trouvées ici, mais je ne peux pas sembler comprendre. Je suis assez nouveau à r, de sorte que toute aide est toujours très appréciée!
J'ai été en mesure de convertir les dates de mon jeu de données (D / M / Y) à une classe de date et de la date de tracé contre l'utilisation des antibiotiques pour chaque date. p>
Le code que j'ai utilisé pour produire déjà un graphique d'utilisation au fil du temps est le suivant; p> Un exemple de ce que je travaille avec est ici; p> 1 13/04/2013 5.000
2 13/04/2013 0.000
3 10/05/2013 7.200
4 22/05/2013 5.000
5 22/05/2013 5.000
6 17/06/2013 7.200
7 17/06/2013 5.000
8 29/06/2013 5.000
9 29/06/2013 7.200
10 29/06/2013 2.250
11 05/08/2013 0.000
12 05/08/2013 5.000
13 24/09/2013 0.500
14 01/10/2013 7.200
15 04/10/2013 4.000
16 08/10/2013 0.500
17 11/10/2013 10.000
18 22/10/2013 0.500
19 29/10/2013 7.200
20 29/10/2013 5.000
3 Réponses :
Ajoutez les éléments suivants à votre GGPLOT:
Ceci permettra à votre axe X à des années plus lisibles. Si vous vouliez dire que vous voulez "agréger" les données aux sommes trimestrielles / annuelles, vous pouvez faire quelque chose comme ceci: p> échelle_x_date (date_breaks = "ans") code> p> data=structure(list(date = structure(c(7L, 7L, 5L, 9L, 9L, 8L, 8L, 12L,
12L, 12L, 3L, 3L, 11L, 1L, 2L, 4L, 6L, 10L, 13L, 13L),.Label = c("01/10/2013", "04/10/2013", "05/08/2013", "08/10/2013", "10/05/2013", "11/10/2013",
"13/04/2013", "17/06/2013", "22/05/2013", "22/10/2013", "24/09/2013",
"29/06/2013", "29/10/2013"), class = "factor"),
antibiotic = c(5, 0, 7.2, 5, 5, 7.2, 5, 5, 7.2, 2.25, 0, 5, 0.5, 7.2, 4, 0.5, 10, 0.5, 7.2, 5)),class = "data.frame", row.names = c(NA, -20L))
library(dplyr) # for piping, group_by, etc.
library(zoo) # for working with dates
data %>%
mutate(quarter = as.yearqtr(as.character(date), format = "%d/%m/%Y")) %>% # generates a new column with the Year
group_by(quarter) %>%
summarise(antibiotic=sum(antibiotic, na.rm = TRUE)) %>% # aggregates the values over a year
ggplot(aes(quarter,antibiotic)) + geom_bar(stat = "identity", colour = "steelblue3") +
ylab("Antibiotic Total (Grams)")
Cela ne semble pas courir? @Fnguyen
@ Danny_0101 En effet, j'ai corrigé un manquant) code> et dans l'exemple reproductible, la variable de date était un facteur qui doit être converti à une date. J'ai inclus les données que j'ai utilisées et pour lesquelles ma solution devrait fonctionner.
Voici une façon de le faire, voir les commentaires dans le code: maintenant, vous pouvez utiliser agrégé_data code> pour votre barplot p> p>
Vous pouvez utiliser Tairyverse pour résumer les totaux antibiotiques au cours du trimestre, puis complotez cela.