有人可以帮我这个忙,我需要按递增顺序对数据集的时间进行排序。我该怎么办?
Input:
11:00 02:40 05:50 03:20
1 1 1 1
0 1 1 1
0 1 1 1
Output:
02:40 03:20 05:50 11:00
1 1 1 1
1 1 1 0
1 1 1 0
Sample data:
df<-structure(list(c("11:00", 1, 0, 0),
c("02:40", 1, 1, 1), c("05:50", 1, 1, 1), c("03:20", 1, 1,1)), row.names = c(NA,4L), class = "data.frame")
答案 0 :(得分:3)
您可以尝试order
+ strptime
> df[order(strptime(df[1,],"%H:%M"))]
1 02:40 03:20 05:50 11:00
2 1 1 1 1
3 1 1 1 0
4 1 1 1 0
答案 1 :(得分:3)
使用chron
和order
df[order(chron::times(paste0(df[1,], ":00")))]
#1 02:40 03:20 05:50 11:00
#2 1 1 1 1
#3 1 1 1 0
#4 1 1 1 0
答案 2 :(得分:2)
您可以在第1行的order
上使用as.difftime
。
df[,order(as.difftime(as.character(df[1,]), "%H:%M"))]
#1 02:40 03:20 05:50 11:00
#2 1 1 1 1
#3 1 1 1 0
#4 1 1 1 0