0

我想使用 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 中做到这一点?

4

2 回答 2

1

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

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

在此处输入图像描述

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

barplot(colSums(dat == 2, na.rm = TRUE) / nrow(dat))
于 2013-08-23T07:59:06.973 回答
0

首先要获得每列中 2 的频率:

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

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

barplot(freqs)
于 2013-08-23T07:54:46.277 回答