#r #ggplot2 #dplyr #apply
Вопрос:
У меня есть данные опроса (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"))
Ответ №1:
Одним из вариантов достижения желаемого результата было бы перебирать имена переменных и использовать .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]]