這裏我的時間範圍:創建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