ggplot2ライブラリを使用したバープロットがあります。
plot <- qplot(Date, data=cns,
geom="bar", binwidth = 1,
fill=Type, facets = Name ~ .)
それは私に名前でファセットバープロットを与えます。
cnsの最初の11行は次のようになります。
Name Date Type Days
1 Name 1 2013-03-12 Requested 0
2 Name 1 2013-03-14 Requested 0
3 Name 1 2013-03-19 Requested 0
4 Name 2 2013-03-01 Completed 1
5 Name 2 2013-03-01 Requested 0
6 Name 2 2013-03-07 Completed 3
7 Name 2 2013-03-08 Requested 0
8 Name 2 2013-03-08 Requested 0
9 Name 3 2013-03-08 Completed 0
10 Name 3 2013-03-13 Requested 0
11 Name 3 2013-03-12 Completed 0
各ファセットに、平均日数(ファセットまたは名前に固有)の水平線を追加したいと思います。「Days」列にはすべてのタイプ「Requested」に0が入力されているため、これも複雑です。つまり、探している平均を取得するには、本当に必要ですmean(cns$Days)/(NROW(cns)/2)
。
私は試した:
plot + geom_hline(aes(yintercept=(sum(cns$Days)/(NROW(cns)/2))))
しかし、私が予想したように、各ファセットに同じ値の水平線が配置されます。それが理にかなっているなら、私はその線をファセット固有にしたいと思います。
これはできますか?
データフレームに平均値を含む新しい列を作成できます。私はそれをy.int
と名付けddply()
、ライブラリの関数を使用して計算しましたplyr
。ここでは、がである値に対してのみ計算された平均値Type
ですCompleted
(Requested
除外する必要があります)。
library(plyr)
cns<-ddply(cns,.(Name),transform,y.int=mean(Days[Type=="Completed"]))
次にgeom_hline()
、新しい列を使用して、各ファセットに行を追加します。
plot + geom_hline(aes(yintercept=y.int))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加