[英]Convert from character to date in a "YYYY-WW" format in R
我很難將字符轉換為 R 中的日期。
我有一個文件,其中日期為“2014-01”,其中第一個是年份,第二個是一年中的第幾周。 我想將其轉換為日期類型。
我嘗試了以下
z <- as.Date('2014-01', '%Y-%W')
print(z)
Output: "2014-12-05"
這不是我想要的。 我想得到相同的格式,即。 output 應該是“2014-01”,但現在是日期類型。
聽起來您正在處理某個版本的年周,它存在於 lubridate 的三個lubridate
中:
week() 返回日期和 1 月 1 日之間發生的完整 7 天周期數加一。
isoweek() 返回出現在 ISO 8601 系統中的星期,該系統使用重復出現的閏周。
epiweek() 是美國 CDC 版本的流行病學周。 它遵循與 isoweek() 相同的規則,但從星期日開始。 在世界其他地區,慣例是從星期一開始流行病學周,這與 isoweek 相同。
Lubridate 具有從日期中提取這些的功能,但我不知道從一周到一個有代表性的一天(可能的 7 天)到另一個方向 go 的內置方法。 如果您要處理第一個版本,一個簡單的方法是將7 * (Week - 1)
添加到當年的 1 月 1 日。
library(dplyr)
data.frame(yearweek = c('2014-01', '2014-03')) %>%
tidyr::separate(yearweek, c("Year", "Week"), convert = TRUE) %>%
mutate(Date = as.Date(paste0(Year, "-01-01")) + 7 * (Week-1))
Year Week Date
1 2014 1 2014-01-01
2 2014 3 2014-01-15
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.