在数据框中排序多行

时间:2014-01-21 10:25:43

标签: r

我有一个像这样的数据框

ID EPOCH
B    2
B    3
A    1
A    2
A    3
C    0

我想做的是按照ID首次出现日期(即每个ID的EPOCH的最小值)来订购它,以便我得到

ID EPOCH
C    0
A    1
A    2
A    3
B    2
B    3

我设法只根据Epoch和ID

订购数据框
df[order(df$EPOCH,df$ID),]

但它不再是由ID聚集的,即

C  0
A  1
A  2
B  2
A  3
B  3

非常感谢

1 个答案:

答案 0 :(得分:3)

首先为EPOCH ID添加每个data.frame最小data <- read.table(textConnection("ID EPOCH B 2 B 3 A 1 A 2 A 3 C 0"), header=TRUE) a <- aggregate(data$EPOCH, data["ID"], min) names(a)[2] <- "min_EPOCH" data <- merge(data, a) 的列:

o <- order(data$min_EPOCH, data$ID, data$EPOCH)
data[o, ]

然后对该新列进行排序:

{{1}}