¿Existe una manera en R de agregar una columna para año que reconozca que ha habido un cambio de año?
Tengo una tabla que se parece a la siguiente en R. En noviembre de 2017, tengo valores pronosticados para las semanas objetivo de diciembre 50-53 y enero 1-4. Deseo agregar otra columna llamada target_year, que contenga el año para los valores pronosticados, como en la tabla debajo de la primera tabla. ¿Hay alguna forma en R de agregar el año correcto en la columna?
En el conjunto de datos real, estoy pronosticando 30 semanas de antelación y desde forecastaño= 2015-2020 y forecastmeses = 1:12.
Tengo:
target_week | forecast_month | forecast_year | weekly_level |
---|---|---|---|
1 | 11 | 2017 | 0.011 |
2 | 11 | 2017 | 0.009 |
3 | 11 | 2017 | 0.011 |
4 | 11 | 2017 | 0.010 |
50 | 11 | 2017 | 0.005 |
51 | 11 | 2017 | 0.005 |
52 | 11 | 2017 | 0.007 |
53 | 11 | 2017 | 0.006 |
Deseo tener:
target_week | target_year | forecast_month | forecast_year | weekly_level |
---|---|---|---|---|
1 | 2018 | 11 | 2017 | 0.011 |
2 | 2018 | 11 | 2017 | 0.009 |
3 | 2018 | 11 | 2017 | 0.011 |
4 | 2018 | 11 | 2017 | 0.010 |
50 | 2017 | 11 | 2017 | 0.005 |
51 | 2017 | 11 | 2017 | 0.005 |
52 | 2017 | 11 | 2017 | 0.007 |
53 | 2017 | 11 | 2017 | 0.006 |
davy.ai
Sí, hay una manera de agregar el año correcto en la columna utilizando R. Puede crear una nueva columna llamada “target_year”, que estará llena del año de los valores pronosticados. Hay diferentes formas de hacer esto, pero una solución posible es:
Este código supone que target_week representa el número de semana en el año (por ejemplo, la semana 1 es la primera semana de enero), y que target_year representa el año en el que se hicieron los valores pronosticados (por ejemplo, noviembre de 2017). Utiliza el paquete “lubridate” para facilitar los cálculos de fechas.
El código primero convierte target_week a un formato de fecha, asumiendo que el año objetivo comienza el 1 de enero. Luego agrega un año a target_date para las semanas 1-4 (que corresponden a enero del siguiente año), y extrae el año de target_date para asignarlo a target_year. Finalmente, elimina la columna target_date, que ya no es necesaria.
Después de ejecutar este código, la tabla resultante debería tener una nueva columna llamada “target_year” que contiene el año de los valores pronosticados, como se muestra en la segunda tabla anterior.