我試圖給YYYYWW格式的日期變量添加52周。我的初始日期是201616(2016年和第16周),我正在嘗試爲此日期添加52周,預計產出爲201715.R +將n周添加到YYYYWW格式
我嘗試了幾件事情,但沒有運氣,這是我迄今爲止所嘗試的
date <- as.Date(as.character(201616), "%Y%W")
seq(date, by = "1 week", length.out = 52)
我將不勝感激您的意見。非常感謝您的時間!
我試圖給YYYYWW格式的日期變量添加52周。我的初始日期是201616(2016年和第16周),我正在嘗試爲此日期添加52周,預計產出爲201715.R +將n周添加到YYYYWW格式
我嘗試了幾件事情,但沒有運氣,這是我迄今爲止所嘗試的
date <- as.Date(as.character(201616), "%Y%W")
seq(date, by = "1 week", length.out = 52)
我將不勝感激您的意見。非常感謝您的時間!
我不確定as.Date
可以採取%Y%W
並生成一個唯一的值。它似乎正在填充date
當前月份和日期。相反,如果我們指定的16週日期:
date <- as.Date("2016-04-23")
和格式化,在你的風格
format(date, "%Y%W")
[1] "201616"
,我們可以從這個
newdate_seq <- seq(date, by = "1 week", length.out = 52)
和變化產生52個值的序列那些你的格式太
format(newdate_seq, "%Y%W")
[1] "201616" "201617" "201618" "201619" "201620" "201621" "201622" "201623" "201624" "201625" "201626" "201627"
[13] "201628" "201629" "201630" "201631" "201632" "201633" "201634" "201635" "201636" "201637" "201638" "201639"
[25] "201640" "201641" "201642" "201643" "201644" "201645" "201646" "201647" "201648" "201649" "201650" "201651"
[37] "201652" "201701" "201702" "201703" "201704" "201705" "201706" "201707" "201708" "201709" "201710" "201711"
[49] "201712" "201713" "201714" "201715"
這個結束於你期望的地方。
僅供參考,下次試着強調是什麼讓你覺得「沒有運氣」 - 你產生了什麼錯誤,你產生了什麼結果,它們與你期望產生的結果有什麼不同?只需打印date
變量就可以看出它沒有達到您的預期效果。
問題是2016#16周有7天。您需要指定一天來將其轉換爲可用於添加天數的日期。在下面的代碼%u
表示一週中的第一天。然後,您可以爲此號碼添加52周。
date1 <- as.Date("201616 1", format = "%Y%U %u")
format(date1+(52*7), "%Y%U")
[1] "201716"
可能值得指出的是,OP使用'%W'(星期一開始的一週,英國大會),而這個回答有'%U'(星期日開始的一週,美國大會)。 –