2017-09-13 37 views
0

我拥有包含年份,月份,星期的列的数据。我如何将它转换为与lubridate的日期。文档中的示例使用年,月和日。通过年份,月份和周期中的lubridate制作完成

让我们假设以下数据

year month week 
2017 1  1 
2017 2  35 
2017 3  50 

我该如何使用。 makedate()与上述数据?

+2

您提供了冲突的信息。第35周将**从未**在第2个月。请编辑您的输入数据。 – CPak

回答

1

使用基地POSIXct的潜在解决方案。

df$complete_date <- as.Date(paste(df$year, df$week, 1, sep="-"), "%Y-%U-%u") 

这是否会产生所需的结果?

year month week complete_date 
1 2017  1 1 2017-01-02 
2 2017  2 35 2017-08-28 
3 2017  3 50 2017-12-11 
+1

'%u'指的是您想要认定为'开始'的星期几。星期一= 1,星期日= 7。因此,如果您希望第35周转换为“2017-08-27”而不是“2017-08-28”,请将1更改为7.查看以下链接以了解符号翻译。 https://stat.ethz.ch/R-manual/R-devel/library/base/html/strptime.html –