2014-11-09 67 views
0

我正在使用dplyr和ggplot2使我對醫院的數據有所瞭解。我使用下面的代碼來獲得醫院的所有權和他們從我整理的數據率性能(稱爲「最後一個數據幀):使用ggplot2繪圖的問題

owner <- final%>% group_by(Ownership)%>% summarise(Score=mean(Total)) 

這將產生

> owner 
Source: local data frame [4 x 2] 

    Ownership Score 
1   HMO 78.84817 
2 governmental 84.33656 
3 municipal 81.40438 
4 semi private 85.01617 

我可以積上述使用

p <- ggplot(owner, aes(Ownership, Score)) 
p+geom_bar(stat="identity") 

,因爲我至少需要10分的聲譽,我不能發表圖片!

我還可以根據它們的大小進行分類醫院:

owner <- final%>% 
group_by(Ownership, Size)%>% 
summarise(Score=mean(Total)) 

這給了我這個

> owner 
Source: local data frame [10 x 3] 
Groups: Ownership 

     Ownership Size Score 
1   HMO big 82.50567 
2   HMO medium 83.12919 
3   HMO small 67.76271 
4 governmental big 85.86831 
5 governmental medium 83.70145 
6 governmental small 84.69767 
7  municipal big 81.40438 
8 semi private big 94.07850 
9 semi private medium 82.54112 
10 semi private small 84.33079 

什麼我現在要做的是情節相同的數據作爲第一位的,但填補了百分比的大小:

p <- ggplot(owner, aes(Ownership, Score, fill=Size)) 
    p+geom_bar(stat="identity") 

這個情節顯然是錯誤的,因爲我所期望的是原始值的細分,例如。對於HMO來說,它的尺寸百分比是78.84817。請有人可以幫我解決這個問題。

+0

您正在尋找這樣的事情? 'ggplot(所有者,aes(所有權,分數,填充=大小))+ geom_bar(stat =「identity」,position =「dodge」)'? – jazzurro 2014-11-09 05:52:24

+0

@jazzurro不,不是真的。這爲每個所有權類別生成3個不同的欄。我所尋找的是這3個百分比的平均值作爲單個酒吧,但滿足個人的百分比。 – Dhiraj 2014-11-09 06:11:27

+1

請使用dput發佈原始數據。 – 2014-11-09 07:03:37

回答

2

嘗試:

library(data.table) 
setDT(owner)[,meanscore:=mean(Score),by=Ownership][] 
owner[,percentscore:=meanscore*Score/sum(Score),by=Ownership][] 
ggplot(owner, aes(Ownership, percentscore, fill=Size)) + geom_bar(stat="identity") 

enter image description here

+0

這幾乎就在那裏,但不完全。雖然每個酒吧的大小已經細分爲百分比組成部分,但每個酒吧的長度都是100.而我要找的是原始長度,如HMO 78.84817,政府84.33656,市政81.40438和半私人85.01617 。這些需要填寫各自的百分比成分。我希望我能夠解釋。基本上,通過查看一個情節,我需要確定哪家醫院有最高分,然後根據這個分數來分解這個分數。 – Dhiraj 2014-11-09 11:37:46

+0

我上面編輯了我的答案。我認爲這是你想要的。 – rnso 2014-11-09 12:21:20

+0

絕對!非常感謝。欣賞。 – Dhiraj 2014-11-09 12:22:40