2017-03-12 135 views
0

這是我的第一個問題在這裏。我搜索了之前的答案,但我沒能找到滿意的一個 - 可能是因爲我是一個絕對的初學者與R.R使用ggplot和一個likert刻度矩陣的堆疊Barplot

,我有以下數據:

 pbw1 pbw2 pbw3 pbw4 pbw5 pbw6 
[1,] 2 3 2 1 0 2 3 
[2,] 2 1 1 3 4 5 6 

PBW是一個變量在一個比例尺上回答。這個數據集有1014行,所以這只是一個例子。

我需要的是一個數字,看起來像這樣:在×6項(我想在結束一個句子替換重量份):

Example

對於我的數據集,這意味着軸,因此6條。這些應該顯示有多少人n = 1014(百分比)已經回答了該項目。例如,80%回答了0,10%回答了1,5%回答了5%等。這顯然應該是累積的。

所有我讀的是ggplot,融化等等。然而我只是無法讓R做我想要的和需要的。

這並沒有幫助:

datm = melt(cbind(pbwmatrix, ind=rownames(pbwmatrix)), id.vars=c('ind'))

而且barplot(pbwmatrix)沒有;隨機命令的幾個傻組合也沒有(是的,我很絕望)。

以任何方式提供幫助將不勝感激!

回答

1

下面是使用ggplot首發:

df <- as.data.frame(replicate(6, sample(1:6,100,T))) 
library(tidyverse) 
df %>% 
    gather %>% 
    group_by(key, value) %>% 
    tally %>% 
    mutate(n = n/sum(n)*100) %>% 
    ggplot(aes(x=key, y=n, fill=as.factor(value))) + 
    geom_col() + 
    geom_text(aes(label=n), position=position_stack(.5)) + 
    coord_flip() 
+0

非常感謝您!這是巨大的!我將嘗試使它適應於我的一組變量! – nagapilota