如何使用 R 将周数转换为日期格式
How to convert week numbers into date format using R
我正在尝试将我的数据集中包含周数的列转换为每周日期。我试图使用 lubridate 包但找不到解决方案。数据集如下所示:
df <- tibble(week = c("202009", "202010", "202011","202012", "202013", "202014"),
Revenue = c(4543, 6764, 2324, 5674, 2232, 2323))
所以我想创建一个每周格式的日期列,例如(2020-03-07, 2020-03-14).
有谁知道如何将这些星期数字转换成每周日期吗?
也许有更自动化的方法,但试试这样的方法。我认为这是正确的日子,我看了看 2020 年的日历并数了数。但如果有什么不对劲,那就是 (week - 1) * 7 - 1
组件的问题 return 你想要什么。
这只是抓取一年的第一天,加上 x 周的天数,然后使用 ceiling_date()
找到下一个星期日。
library(dplyr)
library(tidyr)
library(lubridate)
df %>%
separate(week, c("year", "week"), sep = 4, convert = TRUE) %>%
mutate(date = ceiling_date(ymd(paste(year, "01", "01", sep = "-")) +
(week - 1) * 7 - 1, "week", week_start = 7))
# # A tibble: 6 x 4
# year week Revenue date
# <int> <int> <dbl> <date>
# 1 2020 9 4543 2020-03-01
# 2 2020 10 6764 2020-03-08
# 3 2020 11 2324 2020-03-15
# 4 2020 12 5674 2020-03-22
# 5 2020 13 2232 2020-03-29
# 6 2020 14 2323 2020-04-05
我正在尝试将我的数据集中包含周数的列转换为每周日期。我试图使用 lubridate 包但找不到解决方案。数据集如下所示:
df <- tibble(week = c("202009", "202010", "202011","202012", "202013", "202014"),
Revenue = c(4543, 6764, 2324, 5674, 2232, 2323))
所以我想创建一个每周格式的日期列,例如(2020-03-07, 2020-03-14).
有谁知道如何将这些星期数字转换成每周日期吗?
也许有更自动化的方法,但试试这样的方法。我认为这是正确的日子,我看了看 2020 年的日历并数了数。但如果有什么不对劲,那就是 (week - 1) * 7 - 1
组件的问题 return 你想要什么。
这只是抓取一年的第一天,加上 x 周的天数,然后使用 ceiling_date()
找到下一个星期日。
library(dplyr)
library(tidyr)
library(lubridate)
df %>%
separate(week, c("year", "week"), sep = 4, convert = TRUE) %>%
mutate(date = ceiling_date(ymd(paste(year, "01", "01", sep = "-")) +
(week - 1) * 7 - 1, "week", week_start = 7))
# # A tibble: 6 x 4
# year week Revenue date
# <int> <int> <dbl> <date>
# 1 2020 9 4543 2020-03-01
# 2 2020 10 6764 2020-03-08
# 3 2020 11 2324 2020-03-15
# 4 2020 12 5674 2020-03-22
# 5 2020 13 2232 2020-03-29
# 6 2020 14 2323 2020-04-05