为什么ORDER只返回第一行

时间:2012-02-06 06:10:13

标签: r

我有一个相当简单的data.frame(fract_data),我正在尝试排序,但是当我应用ORDER函数时,只返回第一行。不应该返回所有行吗?我应该如何使用ORDER返回所有行?

    fract_data[order("date"),]
        date code rank.ey rank.roce rank.combined rank.final fract
1 2005-01-31  ABC       1         8             9          4     3

如下所示,fract_data

中有48行
attributes(fract_data)
$names
[1] "date"          "code"          "rank.ey"       "rank.roce"     "rank.combined" "rank.final"    "fract"        

$class
[1] "data.frame"

$row.names
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
[42] 42 43 44 45 46 47 48

考虑到fract_data2只有1行的下面返回的属性,它似乎也不是打印或显示问题。

> fract_data2 <- fract_data[order("date"),]
> attributes(fract_data2)
$names
[1] "date"          "code"          "rank.ey"       "rank.roce"     "rank.combined" "rank.final"    "fract"        

$row.names
[1] 1

$class
[1] "data.frame"

1 个答案:

答案 0 :(得分:13)

order()需要一个或多个向量,并为它提供一个只包含一个元素的字符向量“date”。请改为fract_data[order(fract_data$date), ]