1
我有一個數據幀,Returns
這看起來是這樣的:如何使用已存在的數據框中的特定日期的行創建新的數據框?
Date Company LstPrice r
1987-02-27 NOVO NORDISK 'B' 2.29 0.031531532
1987-03-31 NOVO NORDISK 'B' 2.33 0.017467249
1987-04-30 NOVO NORDISK 'B' 2.25 -0.034334764
1987-05-29 NOVO NORDISK 'B' 2.22 -0.013333333
1987-06-30 NOVO NORDISK 'B' 2.47 0.1126126137
1987-07-31 NOVO NORDISK 'B' 2.46 -0.004048583
1987-08-31 NOVO NORDISK 'B' 1.98 -0.195121951
1987-09-30 NOVO NORDISK 'B' 1.90 -0.040404040
1987-02-27 DANSKE BANK 24.29 -0.130637079
1987-03-31 DANSKE BANK 24.97 0.027995060
1987-04-30 DANSKE BANK 25.43 0.018422107
1987-05-29 DANSKE BANK 26.19 0.029885961
1987-06-30 DANSKE BANK 26.50 0.011836579
1987-07-31 DANSKE BANK 26.57 0.002641509
1987-08-31 DANSKE BANK 28.55 0.074520135
1987-09-30 DANSKE BANK 26.25 -0.080560420
我希望創造不同月份新的數據幀。例如,我想要一個新的數據框,包括前三個月的觀察數據,未來三個月的新數據框等等。他們會是這個樣子:
數據幀,FirstThreeMonths
:
Date Company LstPrice r
1987-02-27 NOVO NORDISK 'B' 2.29 0.031531532
1987-03-31 NOVO NORDISK 'B' 2.33 0.017467249
1987-04-30 NOVO NORDISK 'B' 2.25 -0.034334764
1987-02-27 DANSKE BANK 24.29 -0.130637079
1987-03-31 DANSKE BANK 24.97 0.027995060
1987-04-30 DANSKE BANK 25.43 0.018422107
數據幀,NextThreeMonths
:
Date Company LstPrice r
1987-05-29 NOVO NORDISK 'B' 2.22 -0.013333333
1987-06-30 NOVO NORDISK 'B' 2.47 0.1126126137
1987-07-31 NOVO NORDISK 'B' 2.46 -0.004048583
1987-05-29 DANSKE BANK 26.19 0.029885961
1987-06-30 DANSKE BANK 26.50 0.011836579
1987-07-31 DANSKE BANK 26.57 0.002641509
....等等(我有數據,大約2200。公司在過去的30年,所以我將不得不創造大量的數據幀)。
我嘗試了幾種不同的方法,都使用了if
和for
循環,以及subset
命令,但到目前爲止我無法讓它們中的任何一個工作。我也嘗試尋找類似的問題,但找不到解決方案,適用於我的確切問題。有沒有一種簡單的方法來做這樣的事情。
非常感謝您的幫助!
看看'split'和'cut' – Sotos
爲什麼你想做幾個'data.frame's?爲了發送到其他地方,或者爲每個'data.frame'應用一個函數?你可能需要很長的一段時間,爲每個想要分組的組的每個(一組)月份創建一個簡單的組ID,然後使用'dplyr :: group_by()'和/或'split()'按照已經建議的那樣得到到你需要的地方。 –
我不完全相信我必須製作多個數據框,但是由於我對R的知識有限,這對我來說似乎是最簡單的解決方案。我說過,我只需要在頭三個月,接下來的三個月等這樣做,但這只是一個例子。我也需要在六個月,九個月和十二個月內做同樣的事情。我將首先給出一個簡單的組ID,然後看看我的位置。謝謝 –