代码之家  ›  专栏  ›  技术社区  ›  jakes

排列周期对象(ms函数)不起作用-R

  •  1
  • jakes  · 技术社区  · 6 年前

    我有一个以mm:ss格式记录的时间,其中分钟值实际上可以大于59。我将其解析为 chr 。现在我需要按降序对我的观察结果进行排序,所以我首先创建了 time2 变量为 ms 功能和使用 arrange 在新变量上。然而,排列不起作用,第二列中的值完全混淆了。

    library(tidyverse)
    library(lubridate)
    test <- structure(list(time = c("00:58", "07:30", "08:07", "15:45", "19:30", 
                                "24:30", "30:05", "35:46", "42:23", "45:30", "48:08", "52:01", 
                                "63:45", "67:42", "80:12", "86:36", "87:51", "04:27", "09:34", 
                                "12:33", "18:03", "20:28", "21:39", "23:31", "24:02", "26:28", 
                                "31:13", "43:03", "44:00", "45:38")), .Names = "time", row.names = c(NA, 
                                                                                                     -30L), class = c("tbl_df", "tbl", "data.frame"))
    test %>% mutate(time2 = ms(time)) %>% arrange(time2) %>% View()
    

    我怎么安排这次?

    2 回复  |  直到 6 年前
        1
  •  1
  •   nghauran    6 年前

    我想把 time 在同一单元中,然后 arrange() 。尝试以下操作:

    test %>% mutate(time_in_seconds = minute(ms(time) )*60 + second(ms(time))) %>%
      arrange(desc(time_in_seconds)) %>%
      View()
    
    seconds_to_period(minute(ms(test$time))*60 + second(ms(test$time))) # to get right format (with hours)
    
        2
  •  1
  •   Marcelo    6 年前

    这是arrange的已知限制。dplyr不支持S4对象: https://github.com/tidyverse/lubridate/issues/515