2017-08-04 4 views
0

私は実際にSASを初めて使用しており、スプレッドシートの2変数の共通部分の間にフォームポートフォリオを希望します。SASで2つの変数に応じてポートフォリオを作成

基本的には、「月」、「会社」、「BM」、「時価総額」などの変数を含む「上」というExcelファイルがあります 私は毎月自分のデータを並べ替えたいと思います: BM(降順)。 P25、P50、P75の4つのサイズのポートフォリオを作成し、最初のサイズのポートフォリオをP75(毎月)以上に作成したいと考えています。そして、それぞれのサイズのポートフォリオについて、「BM」とP25、P50、P75との機能で4つの新しいポートフォリオを作り直しました。

誰かが、だから私はコメントに同意

+0

は、サンプルデータ、所望の出力を提供し、あなたが既に試みているものをご提示ください。 ([link](https://stackoverflow.com/help/mcve)) – user2877959

答えて

0

(シートの名前も「アップ」と命名された)私を助け、私にSASコードと私の既存の「アップ」ファイルに追加する方法を表示することができますこれはよく聞かれません。しかし、それは解決するための共通の問題であり、やや楽しいものです。だからここに行く:

私はいくつかのデータを作成するつもりです。 GoogleはSASでExcelを読み込む方法を検索します。それは簡単です。

1000社ランダムSIZEBMの値を持つ企業。

data companies(drop=c); 
format company $12.; 
do c=1 to 1000; 
    company = catt("C_",put(c,z4.)); 
    size = ceil(100*ranuni(1)); 
    BM = ceil(100*ranuni(1)); 
    output; 
end; 
run; 

だから私はあなただけで、これらの4つのグループで等量をしたいと仮定しています。分布やKDEに基づいて百分位数を見積もってはいけません。このためには、PROC RANKがうまくいきます。

proc rank data=companies out=companies descending groups=4; 
var size; 
ranks p_size; 
run; 

は現在 SIZEの降順に基づいて値 0,1,2,3ある変数 P_SIZEを持っています。

P_SIZE値でポートフォリオをソートします。

proc sort data=companies; 
by p_size; 
run; 

BMにランク付け、P_SIZEBYステートメントを使用して、そしてP_SIZE_BMを作成し、再びこの時間をPROC RANKを実行します。

proc rank data=companies out=companies descending groups=4; 
var bm; 
by p_size; 
ranks p_size_bm; 
run; 

P_SIZE_BMは今P_SIZEの各値に対する値0,1,2,3が含まれています。

ソートデータとそれが出てくるかを参照してください。

proc sort data=companies; 
by p_size p_size_bm; 
run; 
関連する問題