我想皈依
myDate=as.character("2017/02")它是以年份/周的格式将日期设置为本周的第一天。所以我试着:
print(as.POSIXct(myDate,format="%Y/%U"))然而,这给了我
[1] "2017-05-03 CEST"这当然是,而不是2017年第二周的第一天。
问题:我需要如何更改as.POSIXct(myDate,format="%Y/%U")才能像上面所描述的那样工作?
发布于 2018-05-03 13:02:41
一年零一周不是一个合适的日期。一天需要和一周联系起来。例如:
myDate=as.character("2017/02")
as.POSIXct(paste(myDate, "0"),format="%Y/%U %w")
#[1] "2017-01-08 EST"这假设一周的第一天是星期天。如果您喜欢星期一,那么请看%u选项。
发布于 2018-05-03 13:17:54
以下是一种可能的办法:
myDate=as.character("2017/02")创建指定年份(如2017年)的日历(yyyy/dd/mm)
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"NB:在本例中周一开始
https://stackoverflow.com/questions/50155460
复制相似问题