本文介绍了使用dplyr中的ranging()对月份进行时间排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个转换为名称的月份(数字)列表:

I have a list of month (numeric) that I convert to names:

fd <- df %>%
  select(product, sales, month) %>%
  mutate(month = month.name[month]) %>%
  filter(!is.na(product), sales!=0) %>%
  group_by(month) %>%
  summarise(sales = sum(sales)) %>%
  collect()

我想对表格进行排序,以便按时间顺序显示月份.我正在寻找来自 dplyr arrange()的解决方案.

I would like to sort the table so that months are presented in chronological order. I'm looking for a solution with arrange() from dplyr if possible.

这是 fd 的结果:

       month   sales
1      April 1306629
2     August 1317986
3   December 1263070
4   February 1493914
5    January 1316889
6       July 1323161
7       June 1331614
8      March 1439019
9        May 1369881
10  November 1256950
11   October 1317647
12 September 1229632

推荐答案

这种方法怎么样:

set.seed(12)
df <- data.frame(month = sample(12), x = LETTERS[1:12])
df
#   month x
#1      1 A
#2      9 B
#3     10 C
#4      3 D
#5      2 E
#6     12 F
#7      8 G
#8      4 H
#9      7 I
#10     5 J
#11    11 K
#12     6 L

library(dplyr)
df %>% 
   mutate(month = factor(month.name[month], levels = month.name)) %>% 
   arrange(month)

#       month x
#1    January A
#2   February E
#3      March D
#4      April H
#5        May J
#6       June L
#7       July I
#8     August G
#9  September B
#10   October C
#11  November K
#12  December F

这篇关于使用dplyr中的ranging()对月份进行时间排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 05:30