我正在使用一个名为 UCBAdmissions
的R内置数据集,并尝试创建一个分组的条形图,其数据被强制转换为数据帧,并按 Admit
, Gender
和 Dept
分组(不使用 ggplot
) .
data(UCBAdmissions)
as.data.frame(UCBAdmissions)
Admit Gender Dept Freq
1 Admitted Male A 512
2 Rejected Male A 313
3 Admitted Female A 89
4 Rejected Female A 19
5 Admitted Male B 353
6 Rejected Male B 207
7 Admitted Female B 17
8 Rejected Female B 8
9 Admitted Male C 120
10 Rejected Male C 205
11 Admitted Female C 202
12 Rejected Female C 391
13 Admitted Male D 138
14 Rejected Male D 279
15 Admitted Female D 131
16 Rejected Female D 244
17 Admitted Male E 53
18 Rejected Male E 138
19 Admitted Female E 94
20 Rejected Female E 299
21 Admitted Male F 22
22 Rejected Male F 351
23 Admitted Female F 24
24 Rejected Female F 317
我尝试以这种方式将数据转换为表格格式,但收到了错误消息 .
> barplot(table(as.data.frame(UCBAdmissions)))
Error in barplot.default(table(as.data.frame(UCBAdmissions))) :
'height' must be a vector or a matrix
我发现这个SO链接提供了非ggplot答案,但是收到了上面显示的错误消息 .
还有这个SO链接,但数据结构不同 .
我希望数据只能用两个维度显示 . 这是简化的分组条形图的样子 .
1 回答
我不确定你想要实现什么,但我会假设你想要按照Dept分组的条形图,而传说是性别和承认的组合(只是为了提出这个想法) .
在您指向的条形图示例中,数据是纯数字矩阵,其中rownames和colnames设置为标签和分组 . 您需要从转换数据开始(我使用
tidyverse
中的dplyr
和tidyr
):现在您的数据采用barplot可以使用的形式: