【发布时间】:2020-04-10 10:06:55
【问题描述】:
我有一个已识别个人的长期目击数据集(从 1979 年到 2019 年的大约 16,000 条记录),我想对同一日期范围(YYYY-09-01 到 YYYY(+1) >)-08-31) 在 R 中跨年。我已经成功地为每个“年”(并获得了唯一的 ID)使用:
library(dplyr)
library(lubridate)
year79 <-data%>%
select(ID, Sex, AgeClass, Age, Date, Month, Year)%>%
filter(Date>= as.Date("1978-09-01") & Date<= as.Date("1979-08-31")) %>%
filter(!duplicated(ID))
year80 <-data%>%
select(ID, Sex, AgeClass, Age, Date, Month, Year)%>%
filter(Date>= as.Date("1979-09-01") & Date<= as.Date("1980-08-31")) %>%
filter(!duplicated(ID))
我想清理代码,理想情况下不需要指定每个范围(只需让它遍历)。我是 R 的新手并且坚持如何做到这一点。有什么建议吗?
仅供参考,“月”和“年”包含在稍后通过melt 和cast 生成表格时。
示例数据:
ID Year Month Day Date AgeClass Age Sex
1 1034 1979 4 17 1979-04-17 U 3 F
2 1127 1979 5 3 1979-05-03 A 13 F
3 1222 1979 5 3 1979-05-03 U 0 F
4 1303 1979 6 16 1979-06-16 U 0 F
5 1153 1980 4 16 1980-04-16 C 0 F
6 1014 1980 4 16 1980-04-16 U 6 F
ID Year Month Day Date AgeClass Age Sex
16428 2503 2019 5 8 2019-05-08 U NA F
16429 3760 2019 5 8 2019-05-08 A 12 F
16430 4080 2019 5 9 2019-05-09 A 9 F
16431 4095 2019 5 9 2019-05-09 A 9 U
16432 1204 2019 5 11 2019-05-11 A 37 F
16433 1204 2019 5 11 2019-05-11 A NA F
#> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
【问题讨论】:
-
您应该提供reproducible example
标签: r dataframe date subset date-range