Powiedzmy, że mam datę w R i jest ona sformatowana w następujący sposób.
date
2012-02-01
2012-02-01
2012-02-02
Czy w R jest jakikolwiek sposób na dodanie kolejnej kolumny z dniem tygodnia powiązanym z datą? Zestaw danych jest naprawdę duży, więc nie ma sensu przechodzić ręcznie i wprowadzać zmian.
df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02"))
Po dodaniu dni wyglądałoby to tak:
date day
2012-02-01 Wednesday
2012-02-01 Wednesday
2012-02-02 Thursday
czy to możliwe? Czy ktoś może wskazać mi pakiet, który pozwoli mi to zrobić? Próbuję automatycznie wygenerować dzień według daty.
weekdays
uzyskanie liczby dni tygodnia, tak jak przy użyciuas.POSIXlt
?setNames(0:6, c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))[weekdays(as.Date(df$date))]
. Jeśli nie lubisz tych nazw, możesz je owinąćunname()
.Spójrz w górę
?strftime
:źródło
'%u'
zamiast'%A'
Użyj
lubridate
pakietu i funkcjiwday
:źródło
abbr = FALSE
Załóżmy, że dodatkowo chcesz, aby tydzień zaczynał się w poniedziałek (zamiast domyślnie w niedzielę), pomocne są następujące czynności:
Wynikiem są dni w przedziale [0, .., 6].
Jeśli chcesz, aby interwał wynosił [1, .. 7], użyj następujących poleceń:
... lub alternatywnie:
źródło
week_start
:wday(df$date, label = TRUE, week_start = 1)
To powinno załatwić sprawę
źródło
źródło
z komentarza JStrahl
format(as.Date(df$date),"%w")
otrzymujemy numer bieżącego dnia:as.numeric(format(as.Date("2016-05-09"),"%w"))
źródło