如何使用 R 和 dplyr 安排或排序日期

Tde*_*eus 7 sorting r date

我想在日期列上对我的数据框进行排序。我的示例数据框:

library(tidyverse)    

dates <- tibble(date = c("01-01-2017", "02-03-2017", "01-02-2017", "02-01-2017", "01-03-2017"), 
                   value = c(8, 12, 4, 14, 11)) 
Run Code Online (Sandbox Code Playgroud)

因此,以下内容不起作用,因为它仅在当天进行排序。

arrange(dates, date)
Run Code Online (Sandbox Code Playgroud)

Use*_*716 7

根据您的评论,这里存在一个问题,日期数据类型应存储为日期,而不是字符串,这样您就可以对它们进行排序和过滤等。

当您选择输出信息时,您可以对其进行格式化并使其在人们眼中看起来很漂亮。

第一个示例将日期转换为实际日期,然后您可以按此列过滤/排序,第二个只会对其进行排序,如果您希望执行其他操作,则需要再次转换。

选项 1(好):

dates_mos <- dates %>%
  mutate(date = as.Date(date, "%d-%m-%Y")) %>%
  arrange(date)
Run Code Online (Sandbox Code Playgroud)

输出 1:

        date value
      <date> <dbl>
1 2017-01-01     8
2 2017-01-02    14
3 2017-02-01     4
4 2017-03-01    11
5 2017-03-02    12
Run Code Online (Sandbox Code Playgroud)

选项2(不太好):

dates_mos <- dates %>%
  arrange(date = as.Date(date, "%d-%m-%Y"))
Run Code Online (Sandbox Code Playgroud)

输出 2:

        date value
       <chr> <dbl>
1 01-01-2017     8
2 02-01-2017    14
3 01-02-2017     4
4 01-03-2017    11
5 02-03-2017    12
Run Code Online (Sandbox Code Playgroud)

  • 要按日期降序排序,请使用“arrange(desc(date))”。 (2认同)