[英]How to convert a date as year/week to the first day of the week via POSIXct?
我想轉換
myDate=as.character("2017/02")
其格式為年/周至本周第一天的日期。 所以我嘗試過:
print(as.POSIXct(myDate,format="%Y/%U"))
但是,這給了我
[1] "2017-05-03 CEST"
這肯定不是 2017年第二周的第一天。
問題 :如何更改as.POSIXct(myDate,format="%Y/%U")
以使其按上述方式工作?
一年零一周不是合適的日期。 一天需要與一周相關聯。 例如:
myDate=as.character("2017/02")
as.POSIXct(paste(myDate, "0"),format="%Y/%U %w")
#[1] "2017-01-08 EST"
這假設一周的第一天是星期天。 如果您更喜歡星期一,請參閱%u選項。
這是一種可能的方法:
myDate=as.character("2017/02")
創建指定年份的日歷(yyyy / dd / mm)(例如2017)
year_date<-seq.Date(as.Date(paste0(substr(myDate,1,4),"/01/01")),as.Date(paste0(substr(myDate,1,4),"/12/31")),by=1)
使用庫ISOweek
,此代碼可以找到每周的第一天
library("ISOweek")
first_day<-cumsum(ISOweekday(year_date)==1)
提取指定周的第一天
year_date[which(first_day==as.numeric(unlist(strsplit(myDate,split="/"))[2]))[1]]
[1] "2017-01-09"
注意 :在這個例子中,星期一星期幾開始
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.