r - 使用 apply 和 ggplot 在 R 中制作多个条形图
问题描述
我有来自调查的数据(1300 行和 12 列),我想为所有列制作条形图(我已经删除了所有 NA 值)。
q1 <- rep(c("yes", "no"), 10)
q2 <- rep(c("no", "yes"), 10)
q3 <- 20:39
data <- cbind.data.frame(q1,q2,q3)```
我正在使用以下代码,但我似乎无法获得 x 轴的正确标签(应该只是列名)。
lapply(data[,c(1:3)], function(variable) ggplot(data = data,
mapping = aes(variable)) +
geom_bar() + labs(x = variable, y = "count"))
解决方案
实现所需结果的一种选择是循环变量名称并使用.data
代词,rlang
如下所示:
q1 <- rep(c("yes", "no"), 10)
q2 <- rep(c("no", "yes"), 10)
q3 <- 20:39
data <- data.frame(q1, q2, q3)
library(ggplot2)
lapply(names(data), function(variable) {
ggplot(
data = data,
mapping = aes(.data[[variable]])
) +
geom_bar() +
labs(x = variable, y = "count")
})
#> [[1]]
#>
#> [[2]]
#>
#> [[3]]
推荐阅读
- java - Java上带大括号的反向树
- c++ - 最大化的最佳方式,因此 clan1 获胜
- django - 我可以使用 JWTAuthentication 两次进行登录身份验证吗?
- scala - Scala变量类型不匹配?
- php - 如何从一维和多维数组中删除键和值?
- python - 无法在 VSCode 中运行 Jupyter Notebook - Vanilla Python,Windows 10
- python - 如何在谷歌上搜索用户输入并在浏览器中打开而不会出现错误?
- python - 我想通过 SSH 执行某个命令,但它不起作用,但其他命令可以。怎么来的?
- php - 身份验证器登录返回预期的响应代码 235,但得到代码“535”,消息“535 身份验证数据不正确”
- javascript - 如何在 React Native 中的前一个函数完成后启动函数