我有一个这样的数据库:
ID | familysize | age | gender
------+------------+-------------------+------------+-----+----------
1001 | 4 | 26 | 1
1001 | 4 | 38 | 2
1001 | 4 | 30 | 2
1001 | 4 | 7 | 1
1002 | 3 | 25 | 2
1002 | 3 | 39 | 1
1002 | 3 | 10 | 2
1003 | 5 | 60 | 1
1003 | 5 | 50 | 2
1003 | 5 | 26 | 2
1003 | 5 | 23 | 1
1003 | 5 | 20 | 1
1004 | ....
我想按每个ID的人的年龄来订购这个数据帧,所以我使用这个命令:
library(plyr)
require(plyr)
b2<-ddply(b , "ID", function(x) head(x[order(x$ age, decreasing = TRUE), ], ))
但是当我使用这个命令时,我失去了一些观察力。我该怎么做才能订购这个数据库?
答案 0 :(得分:1)
b2 <- b[order(b$ID, -b$age), ]
应该这样做。
答案 1 :(得分:1)
arrange
中的plyr
功能在这里做得很好。在ID
之后按age
排序,但按降序排列。
arrange(b, ID, desc(age))