2017-07-17 9 views
0

特定の日付に発生頻度のヒストグラムを作成しようとしています。私は各ビンを1年全体に表現したいと思います。私は、ビンの幅を1年の幅にするためにビンの幅がどうなるべきか分かりません。今私は持っています:日付ビンの太さ

Year <- 
    data.frame(dat = sample(seq(
    as.Date("1987-01-01"), as.Date("2017-01-01"), by = "day" 
), 1000), num = rnorm(2000)) 

ggplot(Year, aes(x = dat)) + geom_histogram(binwidth = 365) 
+ scale_x_date(seq(min(num) - 20, max(num)))) 

私は数値が日を表すことを望んでいたので、私は365を選択しました。また、私のデータは30年以上で、正しい形式(yyyy/mm/dd)です。

答えて

0

これを達成するために、私は日時フォーマットを使用します。

as.numeric(format(date,"%Y")) 

あなたの必要に応じて、statをプロット上で変更することができます。

1

フードの下では、日付の数値形式は秒単位です。したがって、あなたの例では、あなたのビン幅を365 * 24 * 60 * 60に(約)1年幅にすることが望ましいでしょう。

より良いオプションは、ヒストグラムのbreaksを指定することです。これにより、休憩は、たとえば、毎年1月1日に行われ、うるう年、うるう秒、およびその他の時間/日付のシフトが正しく計算されます。

あなたの日付列がas.POSIXctフォーマットされてと仮定して、試してみてください。

library(lubridate) 

ggplot(Yeer, aes(x = dat)) + 
    geom_histogram(breaks = as.numeric(unique(floor_date(Yeer$dat, "year")))) 
+0

ありがとうございました。私のデータはa.Dateとしてフォーマットされていましたが、同じものが動作するはずです。 –

関連する問題