【发布时间】:2021-12-27 12:41:12
【问题描述】:
我正在尝试根据 r 中的日期拆分值。这是我的数据的虚拟对象:
df = data.frame(ID= c('A','B','C'),
year = c('2019','2019','2020'),
start= c('201850','201940','201850'),
end= c('201903','202002','202110'),
value = c(45,14,117))
ID year start end value
A 2019 201850 201903 45
B 2019 201940 202002 14
C 2020 201850 202110 117
我在输出中需要的是按年/周级别划分的值。仅在 2019 年之后的几年内,假设价值在几周内均匀分布。例如,虚拟数据 (A) 的第一行在 2019 年只有 3 周。由于 A 的值为 5 周(201850 到 201903),因此 2019 年的 3 周将等于 27( )。
期望的输出是:
ID year start end value
A 2019 201901 201903 27
B 2019 201940 201952 12
B 2020 202001 202002 2
C 2019 201901 201952 52
C 2020 202001 202053 53
C 2021 202101 202110 10
【问题讨论】:
-
你要找的东西有点难懂,能详细点吗?
-
真的有必要使用 ISO 8601 周历吗?如果是这样,这会使事情变得相当复杂。
-
@AnoushiravanR 我在同一行有几周的不同年份。我需要扩展行,所以我在不同的行中有几周的不同年份。因此,如果这段时间在 2019 年的第 40 周(201940)到 2020 年的第 2 周(202002)之间,我需要将其扩展为 2 个不同的行。一个包括 2019 年第 40-52 周,另一个包括 2020 年第 1-2 周。
-
@D.J 我知道 R 在日期格式方面不是很友好。如果您对正常日期格式有一个简洁的解决方案,我也许可以自己将其调整为几周。