क्या कोई इसमें मेरी मदद कर सकता है, मुझे अपने डेटा सेट के समय को बढ़ते क्रम में क्रमबद्ध करने की आवश्यकता है। मैं यह कैसे कर सकता हूँ?

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")
                                      

                                                                                  
2
user11418708 16 सितंबर 2020, 14:37

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
3
akrun 16 सितंबर 2020, 19:33

आप 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
3
ThomasIsCoding 16 सितंबर 2020, 14:46

आप पंक्ति 1 की as.difftime पर order का उपयोग कर सकते हैं।

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
2
GKi 16 सितंबर 2020, 14:42