【发布时间】:2017-06-16 03:00:35
【问题描述】:
在我的数据框中,我有 3 列,其中一列是日期,
例子,
Region variable value
TN Jan-07 704
AU Jan-07 3621
WB Jan-07 776
KN Jan-07 1015
TN. Feb-07 90
KN. Feb-07 87
我将数据框从长旋转到宽,以将每个日期(可变列)保留为一个列标题。在枢轴之前,我可以看到日期框架是按日期排序的。然而,在我的枢轴之后,它按字母顺序排列,比如所有的 Aprils first,August next 等。我如何按月份对列名进行排序?
Out <- dcast(testdata,Region~variable,value.var = "value")
输出应该是,
Region Jan-07 Feb-07 Mar-07.....
TN. ............................
AU. ............................
WB. ............................
KN. ............................
但我得到的是这个,
Region Apr-07 Apr-08 Aug-07.....
TN. ............................
AU. ............................
WB. ............................
KN. ............................
【问题讨论】:
-
添加了我的评论。你能删除重复的东西吗? @RonakShah
-
请根据示例数据更新您的输出,而不仅仅是
...............。这使帖子不清楚。 -
问题是关于列名,而不是值。正如我在问题中提到的,pivot 没有按 1 月 7 日、2 月 7 日、.. 的顺序返回输出列,而是按 4 月 7 日、4 月 8 日、.. 8 月 7 日、8 月 8 日的顺序返回列...
-
是的,行得通。但我更喜欢整洁。无论如何,谢谢,如果这在 tidyr 中是不可能的,我会继续这样做。
-
基本 R 选项将是
out[order(as.Date(paste0("01-", names(out[-1])), "%d-%b-%y"))]