2017-08-21 7 views
0

は、私は私の質問は基本的なようであればRへの初心者はとても進歩により、恐れ入りしてくださいが、私は非常に使用することができ、すべての機能の間で迷ってしまいましたデータベースを分割する(lubridate、split、daply ...)。スプリット一定の時間間隔によってデータベース(6ヶ月ごと= 131日)

私のデータは、私は6ヶ月ごとにX1、X2、X3及びX4にY1を退行したいと思います1978年から2017年に株価指数の日常リターンで構成されています。 詳細については、毎年262件の観測があります。したがって6ヶ月= 131取引日。ここで

は私の(エクセル)データベースの抽出物である:

Date \t y1 \t x1 \t x2 \t x3 \t x4 
 
01/06/78 \t -0,054728735 \t 0,062336581 \t -0,017447642 \t 0,018066145 \t 0,0137291 
 
01/09/78 \t -0,0633203 \t 0,051713026 \t -0,025691177 \t -0,006909645 \t -0,015750265 
 
01/10/78 \t -0,048852901 \t 0,026756766 \t -0,00910902 \t -0,013302491 \t -0,025715185 
 
01/11/78 \t -0,049357647 \t 0,013119868 \t -0,005255487 \t -0,008035708 \t -0,01565239 
 
01/12/78 \t -0,044503679 \t -0,029061109 \t -0,016565941 \t -0,01131818 \t -0,008933417 
 
01/13/78 \t -0,027863545 \t -0,044460617 \t -0,012819194 \t -0,021071992 \t -0,015533829 
 
01/16/78 \t -0,026495125 \t -0,056336531 \t -0,007379243 \t -0,003360595 \t 0,01056797 
 
01/17/78 \t -0,007670981 \t -0,041300771 \t 0 \t -0,00111657 \t 0,019498044 
 
01/18/78 \t 0,000662032 \t -0,031227275 \t 0,003506725 \t -0,018967432 \t -0,003861009

私はそれを行うための最善の方法は、(II)、その後、6ヶ月ごとに自分のデータベースを分割する(I)であることを考えます6ヶ月ごとに線形回帰を行う。

あなたによれば、それが最善の方法であるかどうか教えてください。その場合、6ヶ月ごとにデータベースを分割するコードを表示できますか?

ご協力いただきありがとうございます。

+0

をあなたにdputの出力を追加することができますこの生データではなく質問します。再現するのはずっと簡単です。ヘルプをご覧くださいhttps://stackoverflow.com/a/5963610/2179336 –

答えて

0

あなたはあなたのデータの行にcooresponding数のシーケンスを作成することができます。その後、

i = c(seq(1,nrow(dat),by=131),nrow(dat)) 

とデータを分割するlapplyを使用します。

lapply(seq_along(i)[-length(i)],function(x) dat[i[x]:(i[x+1]-1),]) 
+0

ありがとう!コードが動作しています。しかし、私はまだ2つの質問があります。 1 /作成された各サブセットをどのように呼び出すことができますか?たとえば、2番目または3番目のサブセットではどのように作業できますか? 2 /私はそれぞれのサブセットについて回帰をしたい。たぶん私はlapplyをもう一度使うべきでしょうか、ループがより適していると思いますか? – tristanjou

関連する問題