我实际上是SAS的新手,并希望形式投资组合位于交易所的两个变量之间。使用SAS创建依赖于2个变量的投资组合
基本上,我有一个名为'上'的变量,像'月,公司,BM,市值上限,美元)的Excel文件 我想每个月排序我的数据:大小(降序),然后BM(降序)。我想根据P25,P50和P75创建4种规模的投资组合,第一个规模组合在P75(每个月)以上,等等。然后对于每个规模的投资组合,创建4个新的投资组合,用于'BM'以及P25,P50和P75的功能。
有人能帮助我,显示我的SAS代码,并把它添加到
我实际上是SAS的新手,并希望形式投资组合位于交易所的两个变量之间。使用SAS创建依赖于2个变量的投资组合
基本上,我有一个名为'上'的变量,像'月,公司,BM,市值上限,美元)的Excel文件 我想每个月排序我的数据:大小(降序),然后BM(降序)。我想根据P25,P50和P75创建4种规模的投资组合,第一个规模组合在P75(每个月)以上,等等。然后对于每个规模的投资组合,创建4个新的投资组合,用于'BM'以及P25,P50和P75的功能。
有人能帮助我,显示我的SAS代码,并把它添加到
所以我与评论表示赞同我现有的“向上”的文件(片的名字也叫“向上”)的方式,这不是问得好。然而,这是一个常见的问题,需要解决并且有点乐趣。所以在这里:
首先,我要补充一些数据。 Google搜索如何在SAS中读取Excel。这很容易。
1000家公司随机SIZE
和BM
值。
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;
我们现在有一个变量P_SIZE
它是基于的SIZE
从大到小的顺序对值0,1,2,3
。
按P_SIZE
值对投资组合进行排序。
proc sort data=companies;
by p_size;
run;
现在再次运行PROC RANK
,使用BY
语句P_SIZE
,排名上BM
,并创建P_SIZE_BM
这个时候。
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;
请提供的样本数据,所需的输出和向我们展示你已经尝试过。 ([链接](https://stackoverflow.com/help/mcve)) – user2877959