这里我的时间范围:创建10,000假多年日期data.frames基于365天窗口
start_day = as.Date('1974-01-01', format = '%Y-%m-%d')
end_day = as.Date('2014-12-21', format = '%Y-%m-%d')
df = as.data.frame(seq(from = start_day, to = end_day, by = 'day'))
colnames(df) = 'date'
我需要创建万个data.frames用不同的假多年的365天每一个。这意味着10,000个数据框中的每一个都需要有不同的开始和结束年份。
总计df
已经到达14,965天,其中365天= 41年。换句话说,df
需要分组10,000次不同 41年(每个365天)。 每年的开始必须是随机的,所以它可以是1974-10-03,1974-08-30,1976-01-03等等,并且末尾df
的剩余日期需要被回收开始的一个。
分组的假年需要出现在data.frames的第三列中。
我会把所有的data.frames放到一个列表中,但我不知道如何创建生成10,000个不同年份的开始日期的函数,然后将每个data.frame与365天的窗口分组41次。
任何人都可以帮助我吗?
@gringer给了一个很好的答案,但它只能解决90%的问题:
dates.df <- data.frame(replicate(10000, seq(sample(df$date, 1),
length.out=365, by="day"),
simplify=FALSE))
colnames(dates.df) <- 1:10000
我需要为10,000列与日期由14965行从df
采取哪些需要是最终在达到df
的末尾时回收。
我试图更改length.out = 14965
但R不回收日期。
另一种选择可能是改变length.out = 1,并最终通过保持相同的顺序添加其余df
排为每列:
dates.df <- data.frame(replicate(10000, seq(sample(df$date, 1),
length.out=1, by="day"),
simplify=FALSE))
colnames(dates.df) <- 1:10000
我怎样才能加入剩余的df
行到每个col?
也许'样品(DF $日,10000)'可以帮助您获得10000个不同的随机的开始日期? – coffeinjunky