R中的日期计数
我有一个R中的日期计数,r,date,dplyr,counting,R,Date,Dplyr,Counting,我有一个df,变量名如下 id indexDate eventDate1 eventDate2 V1 V2 V3 ....... V365 对于日期范围(eventDate1-indexDate)到(eventDate2-indexDate),我想在V1到V365列中标记发生的日期 每个V表示索引后的天数 例如: 如果: 索引日期为2017年1月1日 事件日期1是2017年1月3日(=第2天) eventDate2是2017年1月5日(=第4天), 然后: V2-V4将被分配一个值1,其余V~
df
,变量名如下
id indexDate eventDate1 eventDate2 V1 V2 V3 ....... V365
对于日期范围(eventDate1-indexDate)
到(eventDate2-indexDate)
,我想在V1到V365列中标记发生的日期
每个V
表示索引后的天数
例如:
如果:
索引日期为2017年1月1日
事件日期1是2017年1月3日(=第2天)
eventDate2是2017年1月5日(=第4天),
然后:
V2-V4
将被分配一个值1,其余V~为0
如果有更好的方法,请随时告诉我
谢谢。这很管用-
library(dplyr)
library(tidyr)
# Make fake data
dates <- data.frame(id = 1:10,
indexDate = rep(as.Date("17/01/01"), 10),
eventDate1 = as.Date(paste0("17/01/", 1:10)),
eventDate2 = as.Date(paste0("17/01/", 16:25)))
# Step through this to understand what's going on
dates[rep(row.names(dates), 365), ] %>%
arrange(id) %>%
mutate(Day = rep(1:365, nrow(dates)),
Flag = ifelse(Day <= as.numeric(eventDate2 - indexDate) &
Day > as.numeric(eventDate1 - indexDate), 1, 0)) %>%
# move to long format
spread(Day, Flag)
为了让某件事情变得更好,它需要与其他事情进行比较。你能展示一下你试过的吗?你能提供一个可复制的数据集供人们尝试吗?也许我不清楚,但我目前没有解决方案。谢谢你的帮助!
dates %>% select(`1`, `2`, `3`)