首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按月重新排序数据的行?

如何按月重新排序数据的行?
EN

Stack Overflow用户
提问于 2019-10-06 18:02:18
回答 2查看 71关注 0票数 0

我的目标是每年按照月份的顺序(从12月、11月、10月等1月、2月、3月等)重新排序数据的行。

目前,我有以下数据

代码语言:javascript
复制
            Date            Title  Article
1   1 December 2000 PRESS CONFERENCE Article1
2   1 November 2000 PRESS CONFERENCE Article2
3    1 October 2000 PRESS CONFERENCE Article3
4  1 September 2000 PRESS CONFERENCE Article1
5     1 August 2000 PRESS CONFERENCE Article2
6       1 July 2000 PRESS CONFERENCE Article3
7       1 June 2000 PRESS CONFERENCE Article1
8             1 May PRESS CONFERENCE Article2
9      1 April 2000 PRESS CONFERENCE Article3
10     1 March 2000 PRESS CONFERENCE Article1
11  1 February 2000 PRESS CONFERENCE Article2
12   1 January 2000 PRESS CONFERENCE Article3
13   1 December 2001 PRESS CONFERENCE Article1
14   1 November 2001 PRESS CONFERENCE Article2
15   1 October 2001 PRESS CONFERENCE Article3
.
.
.
n    1 January 2001 PRESS CONFERENCE Article

这种结构从2000年一直延续到2019年。现在,我想扭转这种局面,从2000年到2019年,每年都有这样的情况:

代码语言:javascript
复制
Date            Title  Article
1   1 January 2000 PRESS CONFERENCE Article1
2   1 February 2000 PRESS CONFERENCE Article2
3    1 March 2000 PRESS CONFERENCE Article3
4  1 April 2000 PRESS CONFERENCE Article1
5     1 May 2000 PRESS CONFERENCE Article2
6       1 June 2000 PRESS CONFERENCE Article3
7       1 July 2000 PRESS CONFERENCE Article1
8       1 August 2000 PRESS CONFERENCE Article2
9      1 September 2000 PRESS CONFERENCE Article3
10     1 October 2000 PRESS CONFERENCE Article1
11  1 November 2000 PRESS CONFERENCE Article2
12   1 December 2000 PRESS CONFERENCE Article3
13   1 January 2001 PRESS CONFERENCE Article1
14   1 February 2001 PRESS CONFERENCE Article2
15   1 March 2001 PRESS CONFERENCE Article3
.
.
.
n    1 December 2001 PRESS CONFERENCE Article

有人能帮我吗?我该怎么做呢?

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-06 18:24:52

Date转换为正确的格式,然后从dplyr中使用arrange

代码语言:javascript
复制
library(dplyr)
df %>% arrange(lubridate::dmy(Date))

             Date Title
1  1 October 2000 PRESS
2 1 November 2000 PRESS
3 1 December 2000 PRESS
4  1 October 2001 PRESS
5 1 November 2001 PRESS
6 1 December 2001 PRESS

使用基R

代码语言:javascript
复制
df[order(as.Date(df$Date, "%d %B %Y")),]

数据

代码语言:javascript
复制
#Providing small dataset using `dput` will make it easier for other to help
df <- structure(list(Date = c("1 December 2000", "1 November 2000", 
"1 October 2000", "1 December 2001", "1 November 2001", "1 October 2001"
), Title = c("PRESS", "PRESS", "PRESS", "PRESS", "PRESS", "PRESS"
)), class = "data.frame", row.names = c("1", "2", "3", "13", 
"14", "15"))
票数 2
EN

Stack Overflow用户

发布于 2019-10-06 22:32:06

我们可以使用来自anydateanytime

代码语言:javascript
复制
library(dplyr)
library(anytime)
df %>%
    arrange(anydate(Date))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58259952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档