2017-10-30 11 views
-4

Rに - テーブルを考えるggplotグループ化率プロット

Feature value Condition Sex 
A  6  1   M 
A  4  2   M 
A  10  3   M 
Aneg 1  1   M 
Aneg 2  2   M 
Aneg 6  3   M 
A  2  1   F 
A  3  2   F 
A  4  3   F 
Aneg 5  1   F 
Aneg 6  2   F 
Aneg 9  3   F 

Iは、次のプロットをプロットしたい:

Output

パーセンテージは(同じ条件)のように計算される:

p = A*(100/(A+Aneg)) 

例:

p = 6*(100/(6+1))=85% 

多くの感謝!

+2

あなたは何をしようとしたり、ドキュメントを検索していましたか?あなたは何をしようとしましたか? –

+0

はい、私はggplotについてよく知っています。私は私のポストに示されているようにデータフレームを得るために溶融を使用しています。しかし、パーセント値(Y軸)をプロットすると、正しくないです。各条件(各バー; 6 + 1,4 + 2,10 + 6)の合計を計算する代わりに、すべての 'A'を合計します。 – Christine

答えて

0
library(tidyr) 
df2 <- df %>% 
    spread(Feature, value) %>% 
    mutate(p = A*(100/(A+Aneg))) 

# Condition Sex A Aneg  p 
# 1   1 F 2 5 28.57143 
# 2   1 M 6 1 85.71429 
# 3   2 F 3 6 33.33333 
# 4   2 M 4 2 66.66667 
# 5   3 F 4 9 30.76923 
# 6   3 M 10 6 62.50000 

library(ggplot2) 
ggplot(df2, aes(Sex, p, fill=factor(Condition))) + 
    geom_bar(stat="identity", position="dodge") 

enter image description here

+0

多くのありがとうございます。 「普及」は私の問題を解決しました。 – Christine

関連する問題