plyrパッケージのddplyを使用して、日付ごとの行数を取得しています。ただし、値のない日付がある場合、それらは無視され、特定の日付が存在しないデータフレームになります。ddplyによって生成された値を使用してプロットを生成し、存在しなかったすべての日付を含めて、それらに0のnrow値を与える方法を見つけたいと思いました。
library(plyr)
f = ddply(df, .(created), "nrow")
f = as.data.frame(f)
> head(f)
created nrow
1 2009-12-29 2
2 2009-12-30 3
3 2010-01-06 1
4 2010-01-07 2
5 2010-01-08 2
6 2010-01-11 1
折れ線グラフを適切に作成するために、すべての日付(nrow値が0の日付)が必要です。したがって、上記のセグメントでは、「2010-01-01」から「2010-01-05」などの欠落しているすべての日付を追加し、それぞれに9のnrow値を指定します。これを実行するためのエレガントな方法を提案することはできません。タスク。
ggplot(f, aes(x=created, y=nrow)) +
geom_line(size=0.6, color="darkgreen") +
labs(title="Plot") +
theme(axis.text.y=element_text(family="sans", face="bold"),
axis.text.x=element_text(family="sans", face="bold"))
ddplyの.dropコマンドがこのタスクを実行したと思いましたが、そうではないようです。
編集:
サンプルデータ。
mdf=data.frame(created=c('2009-12-29','2009-12-30','2010-01-06','2010-01-07',
'2010-01-08','2010-01-11','2009-12-29','2009-12-30'))
ddply(mdf, .(created), .drop=FALSE, "nrow")
created nrow
1 2009-12-29 2
2 2009-12-30 2
3 2010-01-06 1
4 2010-01-07 1
5 2010-01-08 1
6 2010-01-11 1
「2010-01-01」、「2010-01-02」などをnrowの値0に含めるにはどうすればよいですか。