2017-04-04 6 views
0

問題のデータセットはダイヤモンド(dplyr)です。私はfacet_wrapを使ってカットして価格のヒストグラムを抜き出しています。また、私は各プロットに中央値線があることを望みます。 これは私が行っている方法です - ggplotファセットラップで各グループのメジアンをプロットする

by_cut <- group_by(diamonds, cut) 

med <- by_cut %>% 
    summarise(medn = median(price)) 

diam <- diamonds %>% 
    mutate(med_cut = ifelse(cut == med$cut[1], med$medn[1], 
         ifelse(cut == med$cut[2], med$medn[2], 
          ifelse(cut == med$cut[3], med$medn[3], 
            ifelse(cut == med$cut[4], med$medn[4], med$medn[5]))))) 

diam %>% 
    ggplot(aes(price)) + 
    geom_histogram(binwidth = 100) + 
    facet_wrap(~ cut, scales = "free_y") + 
    geom_vline(aes(xintercept= med_cut), colour='red') 

(以下のように、これは私が望んでいたものです。)必要なプロットを得た - facet_wrap_median

は、しかし、私はこれがための理想的な方法ではありません確信しています結果を達成するためには、結果として得られるプロットを達成するための最良の方法は何かを知りたいですか?ここ@yeedleコメント

に基づいて

は、以前の試みよりも優れている:

diam <- diamonds %>% 
    group_by(cut) %>% 
    mutate(medn = median(as.numeric(price))) 

diam %>% 
    ggplot(aes(price)) + 
    geom_histogram(binwidth = 100) + 
    facet_wrap(~ cut, scales = "free_y") + 
    geom_vline(aes(xintercept= medn, group= cut), colour='red') 

は、我々はそれを更に向上させることができますか?

答えて

2
diamonds %>% 
    group_by(cut) %>% 
    mutate(med_price = median(as.numeric(price))) %>% 
    ggplot(aes(price)) + 
    geom_histogram(binwidth = 100) + 
    geom_vline(aes(xintercept= med_price), colour='red') + 
    facet_wrap(~ cut, scales = "free_y") 
+0

ありがとう、それは数値ベクトルエラーに関する私の小さな問題を解決しました。私は長い道のりをとったので、エラーのため.... –

+0

Rとそのニュアンスを学ぶのを助けてくれてありがとう... –

関連する問題