如何对变量进行分组并在R中进行条形图?

时间:2013-08-23 07:48:18

标签: r bar-chart

我想用R barplot比较变量的计数或相对频率。

这是一个示例数据框

       Q7B1 Q7A2 Q7B2 Q7A3 Q7B3
    1    NA    2   NA    1    2
    2    NA    2   NA    1    2
    3     2    2   NA    1    2
    4     2    2   NA    1    2
    5    NA    2   NA    1    2
    6    NA    2   NA    2   NA
    7     2    2   NA    1    2
    8    NA    2   NA    2   NA
    9    NA    2   NA    2   NA
    10    2    2   NA    1    2

我想创建一个条形图,其中每个变量(Q7B1,Q7B2,Q7B3,....,Q7B8)代表一个条形图。每个变量都有值(1,2,3)。条的高度表示每个变量的值“2”的计数或相对频率。我怎么在R?

这样做

2 个答案:

答案 0 :(得分:1)

如果您的数据框名为dat,则可以执行以下操作:

barplot(colSums(dat == 2, na.rm = TRUE))

enter image description here

要获得具有相对频率的绘图,可以使用以下命令:

barplot(colSums(dat == 2, na.rm = TRUE) / nrow(dat))

答案 1 :(得分:0)

首先,您想要在每列中获得2的频率:

freqs <- apply(dataframe, 2, function(column) { 
    length(which(column == 2))/nrow(dataframe) 
})
names(freqs) <- names(dataframe) # may be redundant

然后你可以简单地描绘它:

barplot(freqs)