【问题标题】:Convert Week number to date in data frame [duplicate]将数据框中的周数转换为日期[重复]
【发布时间】:2020-05-10 10:44:56
【问题描述】:

我有以下数据集

  Week Year 
  1    2019
  2    2019
  1    2020 
  2    2020

我希望添加一列显示一周的开始日期(从星期日开始)

所以,我的理想输出是

  Week Year Date 
  1    2019 06/01/2019
  2    2019 13/01/2019
  1    2020 05/01/2020
  2    2020 12/01/2010

我已经尝试了以下解决方案

library (lubridate) 
if (df$Year ==2019) {df$Date = parse_date_time(paste(2019, df$Week, 'Sun', sep=" "),'Y/W/a')}
if (df$Year ==2019) {df$Date = parse_date_time(paste(2020, df$Week, 'Sun', sep=" "),'Y/W/a')}

但是,我收到“解析失败”的警告消息。任何提示将不胜感激

【问题讨论】:

  • 数据中的第 3 行和第 4 行相同,但它们的输出不同。
  • 谢谢 Ronak,我刚刚修改了它。

标签: r lubridate


【解决方案1】:

您可以在基础 R 中使用 as.Date 本身来执行此操作。

根据您的尝试,您的语言环境似乎是英语,因此您可以尝试:

as.Date(paste(df$Week, df$Year, 'Sun'), '%U %Y %a')
#[1] "2019-01-06" "2019-01-13" "2020-01-05" "2020-01-05"

【讨论】:

  • 对我来说它会产生“NA”。不知道为什么
  • 这很奇怪。如图所示,它对我有用。您确定您的语言环境是英语而不是其他任何语言吗?
  • 通过使用%w 来避免潜在的语言环境问题(“工作日为十进制数(0-6,星期日为 0”)(也在我发布的链接中进行了描述)
猜你喜欢
  • 2012-05-23
  • 2017-08-07
  • 2021-11-10
  • 2020-03-14
  • 1970-01-01
  • 2021-12-01
相关资源
最近更新 更多