yyyy-ww
formunda, haftalık tarih verileri var, burada ww
, iki basamaktaki hafta sayısıdır. Veri 2007-01
- 2010-30
. Hafta sayım sözleşmesi, on Wikipedia's "Week number" article numaralı telefonu görebileceğiniz gibi, bir yılda 53 haftaya ulaşan ISO 8601'dir. Örneğin, 2009'un bu sistem tarafından 53 haftası vardı, this ISO 8601 calendar'daki hafta numaralarına bakın. (Diğer yıllara bakın; Vikipedi makalesine göre, 53. haftalar oldukça nadirdir.)Yılın 53. haftası R?
Temel olarak, hafta içi tarihi okumak, Date
nesnesine dönüştürmek ve bunu data.frame
içinde ayrı bir sütuna kaydetmek istiyorum. Bir test olarak, nesnelerini biçemlerini format([Date-object], format = "%Y-%W"
ile yeniden dönüştürdüm ve bu, 2009-53
numaralı telefondan bir hata verdi. O hafta bir tarih olarak R
tarafından yorumlanamaz. değil, diğer yılların 2007-53
gibi otomatik olarak dönüştürüldüğü gibi diğer yıllar gibi, 53 yıl (aynı zamanda ISO 8601 standardı) de yok Örneğin, aşağıdaki en küçük örnek sorunu göstermektedir.
Minimal örnek:
dates <- c("2009-50", "2009-51", "2009-52", "2009-53", "2010-01", "2010-02")
as.Date(x = paste(dates, 1), format = "%Y-%W %w")
# [1] "2009-12-14" "2009-12-21" "2009-12-28" NA "2010-01-04"
# [6] "2010-01-11"
other.dates <- c("2007-53", "2008-53", "2009-53", "2010-53")
as.Date(x = paste(other.dates, 1), format = "%Y-%W %w")
# [1] "2007-12-31" NA NA NA
, nasıl ISO 8601 biçiminde hafta numaralarını kabul R
alabilirim Esas soru
Not: Bu soru, birkaç saat boyunca uğraştığım bir sorunu özetler. Ben this gibi çeşitli yararlı mesajlar aradı ve buldum, ama hiçbiri sorunu çözmedi.
'as.Date (x = "2009-01 01", format = "% Y-% W% ağırlık") ISOweek2date (" 2009-W01-1 'ile' karşılaştırma daha açıklayıcı olabilir ")' ve ayrıca '% W' için' yardım (strptime) 'girişini de belirtmelisiniz. – Roland
Emin değilim, ama pek çok R'nin tarih işlemesinin aslında sistem kütüphaneleri tarafından ele alındığını hatırlıyorum. Bu, bu tür bir sorunun (OS) OS'den OS'ye çok değişeceği anlamına gelir; (b) özellikle Windows'ta tehlikeli olabilir; (c) R'nin kendisinde düzeltmek zor olurdu (aşağıdaki yanıtta görüldüğü gibi; 'ISOweek', Windows 'sistem kitaplıklarından malzeme eksik olduğu için kendi algoritmalarını kullanır) –
@BenBolker Davranış,' help (strptime) 'olarak tanımlanır . – Roland