Digamos que eu tenho uma data em R e está formatada da seguinte forma.
date
2012-02-01
2012-02-01
2012-02-02
Existe alguma maneira no R de adicionar outra coluna ao dia da semana associado à data? O conjunto de dados é realmente grande, portanto, não faria sentido passar manualmente e fazer as alterações.
df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02"))
Então, depois de adicionar os dias, acabaria parecendo:
date day
2012-02-01 Wednesday
2012-02-01 Wednesday
2012-02-02 Thursday
Isso é possível? Alguém pode me indicar um pacote que me permita fazer isso? Apenas tentando gerar automaticamente o dia pela data.
weekdays
para obter o número de dias da semana como você usaas.POSIXlt
??setNames(0:6, c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))[weekdays(as.Date(df$date))]
. Se você não gosta dos nomes, pode envolvêunname()
-lo.Procure
?strftime
:fonte
'%u'
'%A'
Use o
lubridate
pacote e a funçãowday
:fonte
abbr = FALSE
Digamos que você queira adicionalmente que a semana comece na segunda - feira (em vez do padrão no domingo), então o seguinte é útil:
O resultado são os dias no intervalo [0, .., 6].
Se você deseja que o intervalo seja [1, .. 7], use o seguinte:
... ou alternativamente:
fonte
week_start
:wday(df$date, label = TRUE, week_start = 1)
Isso deve fazer o truque
fonte
fonte
No comentário de JStrahl
format(as.Date(df$date),"%w")
, obtemos o número do dia atual:as.numeric(format(as.Date("2016-05-09"),"%w"))
fonte