0
votes

Traçage des données quotidiennes comme trimestre / an

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> xxx pré>

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


0 commentaires

3 Réponses :


0
votes

Ajoutez les éléments suivants à votre GGPLOT:

échelle_x_date (date_breaks = "ans") code> p>

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>

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)")


2 commentaires

Cela ne semble pas courir? @Fnguyen


@ Danny_0101 En effet, j'ai corrigé un manquant) 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.



0
votes

Voici une façon de le faire, voir les commentaires dans le code: xxx

maintenant, vous pouvez utiliser agrégé_data pour votre barplot


0 commentaires

0
votes

Vous pouvez utiliser Tairyverse pour résumer les totaux antibiotiques au cours du trimestre, puis complotez cela. xxx


0 commentaires