Muchas gracies, Juan. Funciona a la perfección:
DADES_UE$year_week = ISOweek2date (paste0 (str_replace(year_week,"-","-W"),"-1")) Salud! On Sat, 9 Jan 2021 22:30:52 +0000 (UTC) jose luis <pepe...@yahoo.es> wrote: > HolaOtra forma. > Tras convertir la fecha en factor y separarla en año y semana con "separate", > volvemos a unir año y semana. > > > > > > > > > > > > > > En sábado, 9 de enero de 2021 18:05:50 CET, JCMld > <jc...@carmonarocha.com> escribió: > > El problema es que parece que hay un desfase de 1 semana y empieza > devolviéndote la fecha del primer lunes del año como la de la primera semana > y en realidad es de la segunda. > > Una posible solución sería utilizar el paquete ISOweek. Por ejemplo, > suponiendo que el archivo descargado está en el directorio de trabajo y que > se llama "convid.csv" sería algo así: > > library(ISOweek) > library(stringr) > > a<-read.csv("covid.csv") > a$fecha<-ISOweek2date(paste0(str_replace(a$year_week,"-","-W"),"-1")) > > Esta función requiere que el formato sea del estilo "2020-W01-1", por eso > previamente sustituyo el "-" por "-W". > > Al concatenarle el "-1" significa que te devolverá siempre la fecha del > primer día de la semana, o sea, del lunes. Esto significa que para la > primera semana del 2020 te va a devolver la fecha "2019-12-30", ya que el > año empezó en miércoles. Y para la semana 53, te devuelve 2020-12-28. > > La librería stringr es necesaria para el str_replace. > > Espero te ayude. > > Saludos, > Juan > > > > > -----Mensaje original----- > De: R-help-es <r-help-es-boun...@r-project.org> En nombre de Griera-yandex > Enviado el: sábado, 9 de enero de 2021 16:27 > Para: r-help-es@r-project.org > Asunto: [R-es] Transformar caracter con Año-Num semana del año a fecha > > Hola a todos: > > A ver si alguien me puede ayudar a leer los archivos Covid del European > Centre for Disease Prevention and Control: > > https://www.ecdc.europa.eu/en/publications-data/data-national-14-day-notific > ation-rate-covid-19 > > Ahora la fecha está como año y número de semana en formato ISO. Por ejemplo: > > "2020-01" (1a semana del 2020) > "2020-02" (2a semana del 2020). > "2020-53" (última semana del 2020). > > Intento transformarla como una fecha, pero siempre devuelve el "2020-01-09": > > as.Date ("2020-01", "%Y-%W") # [1] "2020-01-09" > as.Date ("2020-02", "%Y-%W") # [1] "2020-01-09" > as.Date ("2020-03", "%Y-%W") # [1] "2020-01-09" > as.Date ("2020-53", "%Y-%W") # [1] "2020-01-09" > > Si le añado el día de la semana, lo hace bien hasta el "2020-53": > > as.Date (paste0 ("2020-01", "-1"), "%Y-%W-%w") # [1] "2020-01-06 > as.Date (paste0 ("2020-52", "-1"), "%Y-%W-%w") # [1] "2020-12-28" > as.Date (paste0 ("2020-53", "-1"), "%Y-%W-%w") # [1] NA > > Para "2020-53" da el error: In strptime(x, format, tz = "GMT") : > (0-based) yday 369 in year 2020 is invalid > > Alguien me pude decir como solucionarlo? > > Muchas gracias y saludos. > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es