我的数据帧如下
sample <- data.frame(Time = c("10:39:00.064 IST", "10:39:00.165 IST", "10:39:00.265 IST", "10:39:00.366 IST",
"10:39:00.466 IST", "10:39:00.566 IST", "10:39:00.967 IST", "10:39:01.067 IST", "10:39:01.168 IST",
"10:39:01.269 IST", "10:39:01.369 IST", "10:39:00.665 IST", "10:39:00.765 IST", "10:39:00.866 IST",
"10:39:01.771 IST", "10:39:01.468 IST", "10:39:01.570 IST", "10:39:01.671 IST"),
a = c("A", "D", "A", "C", "D", "W", "T", "R", "Q", "S", "A", "W", "I", "P", "K", "J", "D", "F"),
b = c(8, 3, 9, 9,5,8,9,7,5,6,8,6,5,4,7,5,8,7),
c = c(1, 1, 1, 2, 25,1,4,8,68,59,35,42,45,2,5,7,66,5))
样本
Time a b c
10:39:00.064 IST A 8 1
10:39:00.165 IST D 3 1
10:39:00.265 IST A 9 1
10:39:00.366 IST C 9 2
10:39:00.466 IST D 5 25
10:39:00.566 IST W 8 1
10:39:00.967 IST T 9 4
10:39:01.067 IST R 7 8
10:39:01.168 IST Q 5 68
10:39:01.269 IST S 6 59
10:39:01.369 IST A 8 35
10:39:00.665 IST W 6 42
10:39:00.765 IST I 5 45
10:39:00.866 IST P 4 2
10:39:01.771 IST K 7 5
10:39:01.468 IST J 5 7
10:39:01.570 IST D 8 66
10:39:01.671 IST F 7 5
在数据帧样本中,第一列的时间顺序不正确
所以,我使用以下代码重新排列行以使其按特定的顺序排列
sample[with(sample, order(-Time)), ]
但是,样本没有排序,预期输出如下
Time a b c
10:39:00.064 IST A 8 1
10:39:00.165 IST D 3 1
10:39:00.265 IST A 9 1
10:39:00.366 IST C 9 2
10:39:00.466 IST D 5 25
10:39:00.566 IST W 8 1
10:39:00.665 IST W 6 42
10:39:00.765 IST I 5 45
10:39:00.866 IST P 4 2
10:39:00.967 IST T 9 4
10:39:01.067 IST R 7 8
10:39:01.168 IST Q 5 68
10:39:01.269 IST S 6 59
10:39:01.369 IST A 8 35
10:39:01.468 IST J 5 7
10:39:01.570 IST D 8 66
10:39:01.671 IST F 7 5
10:39:01.771 IST K 7 5
预先感谢
答案 0 :(得分:0)
使用lubridate即可做到。
sample <- data.frame(Time = c("10:39:00.064 IST", "10:39:00.165 IST", "10:39:00.265 IST", "10:39:00.366 IST",
"10:39:00.466 IST", "10:39:00.566 IST", "10:39:00.967 IST", "10:39:01.067 IST", "10:39:01.168 IST",
"10:39:01.269 IST", "10:39:01.369 IST", "10:39:00.665 IST", "10:39:00.765 IST", "10:39:00.866 IST",
"10:39:01.771 IST", "10:39:01.468 IST", "10:39:01.570 IST", "10:39:01.671 IST"),
a = c("A", "D", "A", "C", "D", "W", "T", "R", "Q", "S", "A", "W", "I", "P", "K", "J", "D", "F"),
b = c(8, 3, 9, 9,5,8,9,7,5,6,8,6,5,4,7,5,8,7),
c = c(1, 1, 1, 2, 25,1,4,8,68,59,35,42,45,2,5,7,66,5))
library(lubridate)
sample1<- sample
sample1$Time <- hms(sample1$Time)
sample1 <- sample1[order(sample1$Time),]
答案 1 :(得分:0)
使用sqldf
库:
sqldf("select * from sample order by Time")
输出:
Time a b c
1 10:39:00.064 IST A 8 1
2 10:39:00.165 IST D 3 1
3 10:39:00.265 IST A 9 1
4 10:39:00.366 IST C 9 2
5 10:39:00.466 IST D 5 25
6 10:39:00.566 IST W 8 1
7 10:39:00.665 IST W 6 42
8 10:39:00.765 IST I 5 45
9 10:39:00.866 IST P 4 2
10 10:39:00.967 IST T 9 4
11 10:39:01.067 IST R 7 8
12 10:39:01.168 IST Q 5 68
13 10:39:01.269 IST S 6 59
14 10:39:01.369 IST A 8 35
15 10:39:01.468 IST J 5 7
16 10:39:01.570 IST D 8 66
17 10:39:01.671 IST F 7 5
18 10:39:01.771 IST K 7 5