我有以下数据帧R按()data.frame
head(stockdatareturnpercent)
SPY DIA IWM SMH OIH
2001-04-02 8.1985485 7.8349806 7.935566 21.223832 13.975655
2001-05-01 -0.5621328 1.7198760 2.141846 -10.904936 -4.565291
2001-06-01 -2.6957979 -3.5838102 2.786250 4.671762 -23.241009
2001-07-02 -1.0248091 -0.1997433 -5.725078 -3.354391 -9.161594
2001-08-01 -6.1165559 -5.0276558 -2.461728 -6.218129 -13.956695
2001-09-04 -8.8900629 -12.2663267 -15.760037 -39.321172 -16.902913
实际上有更多的股,但出于说明的目的,我不得不剪下来。在每个月中,我想知道从最好到最差(或从最差到最好)的表演者。我玩弄了sort()函数,这就是我想出的。
N <- dim(stockdatareturnpercent)[1]
for (i in 1:N) {
s <- sort(stockdatareturnpercent[i,])
print(s)
}
UPS FDX XLP XLU XLV DIA IWM SPY XLE XLB XLI OIH XLK SMH MSFT
2001-04-02 0.6481585 0.93135 1.923136 4.712996 7.122751 7.83498 7.935566 8.198549 9.826701 10.13465 10.82522 13.97566 14.98789 21.22383 21.41436
SMH FDX OIH XLK XLE SPY XLU XLP DIA MSFT IWM UPS XLV XLB XLI
2001-05-01 -10.90494 -5.045544 -4.565291 -4.182041 -0.9492803 -0.5621328 0.6987724 1.457579 1.719876 2.088734 2.141846 3.73587 3.748309 3.774033 4.099748
OIH XLE XLI XLU XLP XLB DIA UPS SPY XLV FDX XLK IWM SMH MSFT
2001-06-01 -23.24101 -10.02403 -6.594324 -5.8602 -5.0532 -3.955192 -3.58381 -2.814685 -2.695798 -1.177474 0.4987542 1.935544 2.78625 4.671762 5.374764
MSFT OIH XLK IWM SMH XLV UPS XLE SPY XLU XLB XLI DIA FDX
2001-07-02 -9.793005 -9.161594 -7.17351 -5.725078 -3.354391 -2.016818 -1.692442 -1.159914 -1.024809 -0.9029407 -0.2723560 -0.2078283 -0.1997433 2.868898
XLP
2001-07-02 2.998604
这是一种非常低效且便宜的方法来查看结果。最好创建一个存储这些数据的对象。但是,如果我在R提示符中键入's',那么我只会得到最后一行的值,因为for循环的每个后续迭代都会替换以前的数据。
我将不胜感激一些指导。非常感谢你。
's'只包含最后一行,因为每次迭代都要重新分配(覆盖)它。 – 2011-04-09 03:11:45