r-将周数和年份转换为日期格式



虽然我找到了这个问题的解决方案,但在我的情况下,代码只返回NAs。怎么了?下面的工作示例:

df <- data.frame("date" = seq(as.Date("2015/1/1"), as.Date("2016/1/1"), by = "day"))
df$week <- format(df$date, "%W-%Y")
str(df)
# week back into proper date
df$week_date <- as.Date(paste0("01-", df$week), format = "%w-%W-%Y")
str(df)

@cory:你的答案是正确的,让我找到了解决方案。strptime的R文档显示:

%w工作日为十进制数(0-6,星期日为0(。

%W以十进制数字(00-53(表示的一年中的一周,使用星期一作为一周的第一天(通常是一年中的第一个星期一第1周的第1天(。英国公约。

因此,这在paste0之后如预期一样工作,只有个位数:

df <- data.frame("date" = seq(as.Date("2014/1/1"), as.Date("2016/1/1"), by = "day"))
df$week <- format(df$date, "%W-%Y")
str(df)
# week back into proper date
df$week_date <- as.Date(paste0("1-", df$week), format = "%w-%W-%Y")
str(df)
View(df)

值得注意的是,任何新年的第一个星期一之前的几天都会进入无人区,因此需要单独处理。

相关内容

  • 没有找到相关文章

最新更新