【发布时间】:2018-07-20 20:34:05
【问题描述】:
我有一个数据表,其中包含以不同频率重复发生事件的地点的位置。提供了最后一个事件的日期,以及它发生的频率。
例子:
dt
# Location Last_Occurrence Frequency
# 1: Home 7-19-2018 30
# 2: School 6-6-2018 60
# 3: Moon 1-5-1993 90
我想做的是添加一个新列,其中包含每个地点的所有未来活动日期,直到 2018 年底。
所以,我想要一个如下所示的表格:
dt
# Location Last_Occurrence Frequency Next_Dates
# 1: Home 7-19-2018 30 7-19-2018
# 2: Home 7-19-2018 30 8-18-2018
# 3: Home 7-19-2018 30 9-17-2018
# 4: Home 7-19-2018 30 10-17-2018
# 5: Home 7-19-2018 30 11-16-2018
# 6: Home 7-19-2018 30 12-16-2018
# 7: School 6-6-2018 60 6-6-2018
# 8: School 6-6-2018 60 8-5-2018
# 9: School 6-6-2018 60 10-4-2018
etc.
我该怎么做呢?我怀疑 lapply 函数会很有用,因为我在每个位置都这样做......
我已经弄清楚如何使用“while”循环来生成未来日期的向量:
Last_Sample_Date <- Sys.Date() #For testing
increase <- 5 #For testing
NextDate <- Last_Sample_Date+increase
multiplier <- 1
# Create vector of next sampling dates - updated with each iteration of the while loop
NextDates <- c(Last_Sample_Date, NextDate)
while (year(NextDate) == 2018) {
multiplier <- multiplier+1
NextDate <- NextDate+multiplier*increase
#Add to vector of next sampling dates
NextDates <- append(NextDates, NextDate)
})
(我意识到这实际上会生成一个包含 2019 年最终日期的向量,但我可以接受。)
我可以以某种方式使用这个while循环吗,或者我应该有其他方法吗?
【问题讨论】: