Katakanlah saya punya kencan di R dan diformat sebagai berikut.
date
2012-02-01
2012-02-01
2012-02-02
Apakah ada cara di R untuk menambahkan kolom lain dengan hari dalam seminggu terkait dengan tanggal? Dataset benar-benar besar, jadi tidak masuk akal untuk secara manual dan melakukan perubahan.
df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02"))
Jadi setelah menambahkan hari, itu akan berakhir seperti:
date day
2012-02-01 Wednesday
2012-02-01 Wednesday
2012-02-02 Thursday
Apakah ini mungkin? Adakah yang bisa mengarahkan saya ke sebuah paket yang akan memungkinkan saya melakukan ini? Hanya berusaha menghasilkan hari secara otomatis berdasarkan tanggal.
weekdays
untuk mendapatkan jumlah hari kerja seperti yang Anda lakukanas.POSIXlt
??setNames(0:6, c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))[weekdays(as.Date(df$date))]
. Jika Anda tidak suka namanya, Anda bisa membungkusnyaunname()
.Lihat ke atas
?strftime
:sumber
'%u'
sebagai ganti'%A'
Gunakan
lubridate
paket dan fungsiwday
:sumber
abbr = FALSE
Katakanlah Anda juga ingin minggu ini dimulai pada hari Senin (bukan default pada hari Minggu), maka yang berikut ini sangat membantu:
Hasilnya adalah hari-hari dalam interval [0, .., 6].
Jika Anda ingin intervalnya menjadi [1, .. 7], gunakan yang berikut ini:
... atau, sebagai alternatif:
sumber
week_start
:wday(df$date, label = TRUE, week_start = 1)
Ini harus melakukan trik
sumber
sumber
dari komentar JStrahl
format(as.Date(df$date),"%w")
, kami mendapatkan jumlah hari ini:as.numeric(format(as.Date("2016-05-09"),"%w"))
sumber