我有一个矩阵,其中包含大约1000家公司的月度股票回报超过16年,另一个矩阵包含公司的年度规模衡量标准,以及第三个矩阵,其中包含相同公司的年度账面净值与市场权益。所以对于每一只股票,我有192个回报观察,12个尺寸观察和12个市场观察。矩阵按此命令:
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投资组合。 首先,我想对大小变量的股票进行排序。我想在时间t使用大小来将第t年的所有股票分类为五分之一。一旦完成这一点,我希望将每一组股票按照市场(时间t-1)排序,进入五分位数。一旦分类,应该有25组股票(每个大小组为5个/组),现在我想取这些组的平均值(每个月平均一次)。我想每年重新排序一次,以便最终得到一份包含192个月的25个投资组合的清单,每年由不同的股票组成。我怎么能在R中这样做?我是R的新手。
这里有一个类似的问题: Nested double sort in Matlab
然而,它与Matlab有关。答案 0 :(得分:1)
基于data.table(来自Matt Dowle和Co的图书馆)提出问题的几种可能的通用方法之一可以如下:
定义排序顺序
sortBy <- c('companySize','otherVariable1','otherVariable2')
sortType <- c(1,1,-1) # 1 for ascending, -1 for descending
setorderv(bigDT,sortBy,sortType)