数据如下:
df<-read.table(text=" A1 A2 A3 M1 M2 M3
F M F A B A
M M F A B A
F M F A B A
F M F C B A
F M F C B A
M M F C C B
F M F C C B
M F F C C B
F F F D C B
M F F D C B
F F F D A B
F F F D A C
F F F D A C
M F F D A C
F M M B A D
F M M B A D
F M M B D D
M M M B D D
F M M B D D ", h=T)
我想要A1和M1的条形图; A2与M2,A3与M3。到目前为止,我已经尝试过:
library(purrr)
library(ggplot2)
map2(names(df)[4:6], names(df)[1:3], ~
ggplot(df, aes(x = !!rlang::sym(.x), y = !!rlang::sym(.y))) +
geom_bar())
但是,出现以下错误:
错误:不得将stat_count()用作美观对象。
我努力解决该错误。有帮助吗?
我希望每个图都有这个
ggplot(df, aes(x = A1, fill = M1)) +
geom_bar(position = position_dodge())
答案 0 :(得分:0)
要结合工作示例和尝试过的内容,
library(purrr)
library(ggplot2)
map2(names(df)[1:3], names(df)[4:6], ~
ggplot(df, aes_string(x = .x, fill = .y)) +
geom_bar(position = position_dodge()))
您似乎希望fill
用于第4-6列(M1,M2和M3)-正确吗?这样,您就不需要y
中的aes
。
此外,您可以使用fill
代替aes_string
。
最后,根据您的工作示例添加了rlang::sym
。让我知道您是否打算这样做。