2

我有一个名为“股票”的股票价格数据集。每列是不同的股票。每行是股票价格的日期。

如何对给定日期的股票价格进行排名?

我试过

 tiedrank(stocks.yhoo)

并成功对YHOO股票价格进行排名。但是,我想按行而不是按列排名。

另外,当我尝试

tiedrank(stocks(1,:))

或删除第 1 列中的日期列

tiedrank(stocks(1,2:3))

我收到错误消息:数据集数组下标必须是二维的。

难道我做错了什么?还是我最好使用矩阵?

4

1 回答 1

1

如果我理解正确,您想根据给定日期的价格对股票进行排名,其中日期是行,股票是列。要跨行使用tiedrank,您需要将数据集的那部分转换为double,然后使用输出索引列表进行排序:

%# create index for sorting
idx = tiedrank( double( stocks(1,:) ));

%# reorder columns with index
sortedStocks = stocks(:,idx);
于 2012-12-26T21:21:20.320 回答