通过循环字符串在ggplot中设置x变量

时间:2019-04-10 05:25:02

标签: r loops ggplot2

我正在使用一个字符向量,该向量包含要使用ggplot绘制的数据框中的变量。我正在使用for循环设置x变量,但是ggplot似乎没有正确分配该变量。

我的数据框(数据)具有多个要使用geom_bar绘制的因子变量。我创建了一个字符向量(chars),其中包含因子变量的列名。我在分配所需变量的循环中遇到了困难。

chars <- c("school", "address", "famsize", "Pstatus", "Mjob", "Fjob", "reason", "guardian", "schoolsup", "famsup", "paid", "activities", "nursery", "higher", "internet", "romantic")

data[chars] <- lapply(data[chars], factor)

for (i in chars) {
   print(ggplot(data, aes(x = i))) +
     geom_bar()
}

我希望最终得到所有变量的条形图,但是相反,我得到了一系列空白图,标题为chars中的每个对象。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您也许可以使用aes_string代替aes:

print(ggplot(data, aes_string(i)) + geom_bar())