2016-04-26 3 views
0

私は、約1000社の企業で16年間の株価収益率を含むマトリックスと、企業の年間規模測定値を含む別のマトリックスと、すべての株式について、192の観測値、12の観測値、12の市場への観測値を返します。マトリックスは次のように順序付けられます。FamaフランスのポートフォリオをRから選ぶR

U:APC(P#T) U:AR(P#T) U:APA(P#T) 89589Q(P#T) 
    0.05   0.03  -0.2   0.11 
    0.02   0.0l2  -0.1   0.12 
    0.01   0.013  0   0.02 
    ...   ...   ...   .... 

私はFama French 2015ポートフォリオにデータを並べ替えたいと思います。 まず、変数をsize変数に並べ替えたいと思います。私は時間tでサイズを使って、年tのすべての株式を五分位にソートしたいと思います。これが完了すると、私は株式のすべての個々のグループを取って、書籍を市場に出す(時刻t-1)も五分位にすることを望みます。一度選別すると、25のグループのグループ(各グループに5 b/mのグループ)が存在するはずですが、今はこれらのグループの平均を取っていきたいと思います(毎月平均して1回)。毎年1回再ソートしたいので、最終的に毎年異なる株式で構成されている192ヶ月以上の25のポートフォリオのリストを取得します。私はこれをRでどうやって行うことができますか? Nested double sort in Matlab

が、しかし、それは、MATLABに関する:私はここに同様の質問がありますR.

に非常に新しいです。

次のようにdata.table(マット・DowleとCoからライブラリ)に基づいて、あなたの質問にいくつかの可能な汎用的なアプローチの一つは、可能性が

答えて

1

  1. あなたdata.frame(s)はDF1、DF2を言うの変換、DT1、DT2にDF3は、DT3 as.data.table
  2. を使用すると、
  3. は、DTSがソート

    を注文定義
  4. bigDT

  5. 新しいテーブルを呼び出しマージ(あなたは日付と数値型を持っている)のDTの列タイプを定義します
    sortBy <- c('companySize','otherVariable1','otherVariable2') 
    sortType <- c(1,1,-1) # 1 for ascending, -1 for descending 
    setorderv(bigDT,sortBy,sortType)