Digamos que tengo una fecha en R y está formateada de la siguiente manera.
date
2012-02-01
2012-02-01
2012-02-02
¿Hay alguna forma en R de agregar otra columna con el día de la semana asociado con la fecha? El conjunto de datos es realmente grande, por lo que no tendría sentido revisarlo manualmente y realizar los cambios.
df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02"))
Entonces, después de agregar los días, terminaría luciendo así:
date day
2012-02-01 Wednesday
2012-02-01 Wednesday
2012-02-02 Thursday
es posible? ¿Alguien puede señalarme un paquete que me permita hacer esto? Solo trato de generar automáticamente el día por la fecha.
weekdays
para obtener el número de días de la semana como lo haces usandoas.POSIXlt
?setNames(0:6, c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))[weekdays(as.Date(df$date))]
. Si no te gustan los nombres, puedes envolverlounname()
.Mirar hacia arriba
?strftime
:fuente
'%u'
'%A'
Use el
lubridate
paquete y la funciónwday
:fuente
abbr = FALSE
Supongamos que también desea que la semana comience el lunes (en lugar del domingo predeterminado), entonces lo siguiente es útil:
El resultado son los días en el intervalo [0, .., 6].
Si desea que el intervalo sea [1, .. 7], use lo siguiente:
... o alternativamente:
fuente
week_start
:wday(df$date, label = TRUE, week_start = 1)
Esto debería funcionar
fuente
fuente
formulario comentario de JStrahl
format(as.Date(df$date),"%w")
, obtenemos el número del día actual:as.numeric(format(as.Date("2016-05-09"),"%w"))
fuente