J'ai un cadre de date similaire aux données de jouets suivants:Utilisez lubridate pour modifier l'année au sein de la chaîne dplyr
df <- structure(list(year = c(2014, 2014, 2014, 2014, 2014, 2015, 2015,
2015, 2015, 2015, 2016, 2016, 2016, 2016, 2016), date = structure(c(16229,
16236, 16243, 16250, 16257, 16600, 16607, 16614, 16621, 16628,
16964, 16971, 16978, 16985, 16992), class = "Date"), value = c(0.27,
0.37, 0.57, 0.91, 0.2, 0.9, 0.94, 0.66, 0.63, 0.06, 0.21, 0.18,
0.69, 0.38, 0.77)), .Names = c("year", "date", "value"), row.names = c(NA,
-15L), class = c("tbl_df", "tbl", "data.frame"))
Où value
est une valeur d'intérêt et year
et date
sont explicites. Si je veux comparer visuellement value
sur plusieurs années, ayant les différentes années date
fait le graphique pas très utile
library(tidyverse)
ggplot(df, aes(date, value, color = as.factor(year))) +
geom_line()
Je peux changer l'année date
en utilisant lubridate
comme suit, et cela fonctionne
# This works
library(lubridate)
df2 <- df
year(df2$date) <- 2014
ggplot(df2, aes(date, value, color = as.factor(year))) +
geom_line()
Mais il serait utile de changer cela dans le cadre d'une chaîne dplyr
, quelque chose le long des lignes de
df3 <- df %>%
mutate(year(date) = 2014)
Mais ce code renvoie une erreur
Error: unexpected '=' in: "df3 <- df %>% mutate(year(date) ="
est-il un moyen de faire ce travail dans une chaîne dplyr
, ou dois-je juste faire cette édition en dehors de la chaîne?