内のデータをフォーマットする際に、日付範囲の秩序を失うことは、いくつかのランダムなデータである:ここでは、テーブル
library(dplyr)
library(tidyr)
channels <- c("Facebook", "Youtube", "SEM", "Organic", "Direct", "Email")
mts <- seq(from = last_month %m+% months(-23), to = last_month, by = "1 month") %>% as.Date()
dimvars <- expand.grid(Month = mts, Channel = channels)
rws <- nrow(dimvars)
Sessions <- round(rnorm(rws, 5000),0)
dataset <- cbind(dimvars, Sessions)
そして、ここでは、このランダムデータを使用してテーブルです:
sessionsTable <- dataset %>%
mutate(Month = format(Month, "%b-%Y")) %>%
gather(Key, Value, -Channel, -Month) %>%
spread(Month, Value) %>%
select(-Key) %>%
mutate_at(vars(-Channel), funs(. %>% round(0) %>% scales::comma()))
そして、ここでは何ですか問題は、それがアルファベット順のデータではなく月単位で推移していないということです
> sessionsTable
Channel Apr-2016 Apr-2017 Aug-2015 Aug-2016 Dec-2015 Dec-2016 Feb-2016 Feb-2017 Jan-2016 Jan-2017 Jul-2015 Jul-2016 Jun-2015 Jun-2016
1 Facebook 14,852 7,604 8,841 16,429 20,720 21,527 10,960 13,824 14,394 19,163 1,047 19,209 2,198 18,655
2 Youtube 11,566 12,452 3,410 15,940 67 3,197 3,068 20,082 1,408 14,042 7,599 17,469 834 17,779
3 SEM 23,606 28,385 14,868 22,406 20,225 15,713 20,064 20,589 27,807 15,978 13,601 24,072 14,018 26,584
4 Organic 12,796 40,916 14,882 22,058 13,388 33,316 12,723 37,252 12,694 36,058 18,322 16,574 21,868 14,915
5 Direct 36,057 19,386 55,336 27,534 46,702 24,804 40,207 26,838 44,965 26,310 56,514 30,411 48,851 25,816
6 Email 15,966 4,768 7,663 6,051 13,520 17,650 9,100 13,939 13,909 10,430 10,116 16,317 14,854 18,430
Mar-2016 Mar-2017 May-2016 May-2017 Nov-2015 Nov-2016 Oct-2015 Oct-2016 Sep-2015 Sep-2016
1 8,732 12,734 16,651 3,959 18,415 18,020 9,840 27,853 9,193 25,364
2 7,458 14,466 15,009 10,118 2,065 9,524 8,334 10,564 2,643 14,037
3 22,987 30,840 24,686 16,839 21,354 13,472 14,511 11,954 14,725 17,313
4 14,649 34,112 16,018 37,914 12,482 28,349 18,586 22,605 20,009 24,234
5 39,981 23,635 27,717 14,265 47,936 22,207 46,651 22,485 50,203 30,574
6 8,743 12,628 18,224 2,806 12,343 8,104 15,602 4,405 6,383 11,708
:ように見えます。 2016年4月から2017年4月までです。私が望むのは、2016年4月、2016年5月、2016年6月などです。
この行を省略した場合mutate(Month = format(Month, "%b-%Y")) %>%
ソートは私が望む通りになりますが、月の列には完全な日付が表示されます。 2015-06-01と2015-07-01など
トレンドテーブルを月単位で並べ替えるにはどうすればよいですか? "Apr-2016"、 "May-2016"、 "Jun-2016"など?
なぜ私はdownvotedされていますか?再現可能なデータを提供する。私ができる限り問題を説明しました。他の回答が検索されても、正しい検索用語を使用できない可能性があります。 –
私は他の人に話すことができませんが、この例は、最小限の*再現可能な例とはまったく異なります。あなたが言うことができる限り、文字に変換した後に 'Month'でソートするだけなので、文字のようにソートされます。だから後にそれを変換する。また、どのパッケージを読み込んでいますか? –
feedback @NathanWerthフィードバックありがとうございます。トリッキーな部分は、私が収集し、日付 "月"の元の列を歪めるtidyrパッケージから広がって使用しています。私はdplyrとtidyrパッケージを使用しています。 "私が言うことができる限り、文字を文字に変換してからMonthでソートするだけなので、それは文字のようにソートされているので、後で変換する"この特定のデータセットでは、 ? –