Я создаю функцию, которая использует forl oop для создания и возврата списка ggplots. Когда я пытаюсь просмотреть любой из возвращенных графиков, например, вызывая plots["aClass_20_30"]
, я получаю:
Ошибка: StatBin требует непрерывной переменной x: переменная x является дискретной. Возможно, вы хотите stat = "count"?
Однако, если я создам один из графиков за пределами forl oop, как показано ниже, он будет отображаться просто отлично, потому что рассматриваемая переменная myVar
, IS непрерывный:
tpp %>%
filter(risk_class == "aClass", age_buckets=="20_30") %>%
ggplot(aes(x=myVar)) +
geom_area(stat='bin') +
labs(title = paste("aClass", "20_30", sep="_"))
Это функция:
plot_fixed_age_class_against <- function(variable) {
temp <- tpp %>%
select_('age_buckets', 'rclass', variable) %>%
filter(!is.na(rclass))
plots <- vector("list", 48)
for (class in unique(temp$rclass)) {
for (age in unique(temp$age_buckets)) {
print(paste(class, age, sep="_"))
plots[[paste(class, age, sep="_")]] <-
temp %>%
filter(rclass == class, age_buckets==age) %>%
ggplot(aes(x=variable)) +
geom_area(stat='bin') +
labs(title = paste(class, age, sep="_"))
}
}
#print(plots)
return(plots)
}
, и я вызываю ее, используя plots <- plot_fixed_age_class_against("myVar")
Если я изменяю bin для подсчета в пределах forl oop, графики отображаются, но на них ничего не изображено. Однако использование bin вне forl oop, как указано выше, работает отлично. myVar
- это число c.