Это мой код:
library(ggplot2)
for(i in 1:4) {
x_i = vector()
x_i = rnorm(n = 10^(1+i))
plot_i <- ggplot(data = x_i, aes(x = x_i)) +
geom_histogram(aes(y = ..density..), binwidth = .05, col = "blue") +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1), col = "Red")
}
Я не хочу отображать графики, мне просто нужно хранить их как объекты, чтобы затем я мог передавать их в сетку графиков.
Ранее здесь уже задавался подобный вопрос, например , этот и , этот тоже , но ни один из ответов не дает решения моей проблемы. Когда я запускаю код, я получаю это сообщение об ошибке: «Ошибка: data
должен быть фреймом данных или другим объектом, который может быть обработан с помощью fortify()
, а не числовым вектором».
РЕДАКТИРОВАТЬ: Гордон заметил, что мне нужно передать data.frame в ggplot. Я изменил x_i
на фрейм данных, теперь это код
library(ggplot2)
for(i in 1:4) {
x_i[,1] = data.frame(rnorm(n = 10^(1+i)))
plot_i <- ggplot(data = x_i, aes(x = x_i)) +
geom_histogram(aes(y = ..density..), binwidth = .05, col = "blue") +
stat_function(fun = dnorm, args = list(mean = 0, sd = 1), col = "Red")
}
Это создало новые вопросы. Я получаю один объект x_i
, а не 4 объекта x_1, x_2, x_3, x_4
. То же самое случилось с `` plot_i```. Я получаю это сообщение: элемент замены 1 имеет 100 строк для замены 1 элемент замены строк 1 имеет 1000 строк для замены 1 элемент замены 1 строк имеет 10000 строк для замены 1 элемент 1 замены строк имеет 100000 строк для замены 1 строк