我想用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?
这样做答案 0 :(得分:1)
如果您的数据框名为dat
,则可以执行以下操作:
barplot(colSums(dat == 2, na.rm = TRUE))
要获得具有相对频率的绘图,可以使用以下命令:
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)