我有一个日期格式的列.但是,月份不按月份排列.abb正常顺序(例如,1月至12月).

我能做什么?

参考以下代码

> # create layernames and date tibble 
> names_dates <- tibble(names = names(idw2),
+                       date = time(idw2))  %>% 
+   select(date)
> head(names_dates, 20)
# A tibble: 20 x 1
   date      
   <date>    
 1 1998-04-01
 2 1999-04-01
 3 2000-04-01
 4 2001-04-01
 5 2002-04-01
 6 2003-04-01
 7 2004-04-01
 8 2005-04-01
 9 2006-04-01
10 2007-04-01
11 2008-04-01
12 2009-04-01
13 2010-04-01
14 2011-04-01
15 2012-04-01
16 2013-04-01
17 2014-04-01
18 2015-04-01
19 2016-04-01
20 2017-04-01

dates_names_ordered <-

这是我的数据的dput

> dput(names_dates)
structure(list(date = structure(c(10317, 10682, 11048, 11413, 
11778, 12143, 12509, 12874, 13239, 13604, 13970, 14335, 14700, 
15065, 15431, 15796, 16161, 16526, 16892, 17257, 10439, 10804, 
11170, 11535, 11900, 12265, 12631, 12996, 13361, 13726, 14092, 
14457, 14822, 15187, 15553, 15918, 16283, 16648, 17014, 17379, 
10561, 10926, 11292, 11657, 12022, 12387, 12753, 13118, 13483, 
13848, 14214, 14579, 14944, 15309, 15675, 16040, 16405, 16770, 
17136, 17501, 10258, 10623, 10988, 11354, 11719, 12084, 12449, 
12815, 13180, 13545, 13910, 14276, 14641, 15006, 15371, 15737, 
16102, 16467, 16832, 17198, 10227, 10592, 10957, 11323, 11688, 
12053, 12418, 12784, 13149, 13514, 13879, 14245, 14610, 14975, 
15340, 15706, 16071, 16436, 16801, 17167, 10408, 10773, 11139, 
11504, 11869, 12234, 12600, 12965, 13330, 13695, 14061, 14426, 
14791, 15156, 15522, 15887, 16252, 16617, 16983, 17348, 10378, 
10743, 11109, 11474, 11839, 12204, 12570, 12935, 13300, 13665, 
14031, 14396, 14761, 15126, 15492, 15857, 16222, 16587, 16953, 
17318, 10286, 10651, 11017, 11382, 11747, 12112, 12478, 12843, 
13208, 13573, 13939, 14304, 14669, 15034, 15400, 15765, 16130, 
16495, 16861, 17226, 10347, 10712, 11078, 11443, 11808, 12173, 
12539, 12904, 13269, 13634, 14000, 14365, 14730, 15095, 15461, 
15826, 16191, 16556, 16922, 17287, 10531, 10896, 11262, 11627, 
11992, 12357, 12723, 13088, 13453, 13818, 14184, 14549, 14914, 
15279, 15645, 16010, 16375, 16740, 17106, 17471, 10500, 10865, 
11231, 11596, 11961, 12326, 12692, 13057, 13422, 13787, 14153, 
14518, 14883, 15248, 15614, 15979, 16344, 16709, 17075, 17440, 
10470, 10835, 11201, 11566, 11931, 12296, 12662, 13027, 13392, 
13757, 14123, 14488, 14853, 15218, 15584, 15949, 16314, 16679, 
17045, 17410), class = "Date")), row.names = c(NA, -240L), class = c("tbl_df", 
"tbl", "data.frame"))

推荐答案

一种可能的解决方案,使用lubridate:

library(dplyr)
library(lubridate)


df %>% 
  arrange(ymd(date) %>% year, ymd(date) %>% month)

#> # A tibble: 240 x 1
#>    date      
#>    <date>    
#>  1 1998-01-01
#>  2 1998-02-01
#>  3 1998-03-01
#>  4 1998-04-01
#>  5 1998-05-01
#>  6 1998-06-01
#>  7 1998-07-01
#>  8 1998-08-01
#>  9 1998-09-01
#> 10 1998-10-01
#> # ... with 230 more rows

R相关问答推荐

在R中,如何在使用tibble::enFrame % % unlist转换后从收件箱中重组嵌套列表?

pivot_longer:names_to和names_pattern

使用lares::corr_var函数在for循环中分配变量的问题

在处理因素时,Base R grep家族比stringr变体快得多

如何在ggplot 2线性图的每个方面显示每个组的误差条?

如何删除R中除某些特定名称外的所有字符串?

如何在Chart_Series()中更改轴值的 colored颜色 ?

在R中无法读入具有Readxl和lApply的数据集

如何根据嵌套元素的名称高效而优雅地确定它属于哪个列表?

如果某些列全部为NA,则更改列

根据现有列的名称和字符串的存在进行变异以创建多个新列

解析R函数中的变量时出现的问题

ComplexHEAT:使用COLUMN_SPLIT时忽略COLUMN_ORDER

在数据帧列表上绘制GGPUP

从多层嵌套列表构建Tibble?

调换行/列并将第一行(原始数据帧的第一列)提升为标题的Tidyr类似功能?

仅当后续值与特定值匹配时,才在列中回填Nas

为什么函数toTitleCase不能处理english(1),而toupper可以?

计算来自单独分组的分幅的值的百分位数

计算多变量的加权和