我在函数中创建了一些图,然后将它们传递给常规代码。没有错误消息,但是当我运行代码时,代码没有收到图 - 从函数返回后没有出现图。
这是我的代码。请让我知道我做错了什么,这样才能奏效。 感谢
library(dplyr)
library(stringr)
library(ggplot2)
library(reshape2)
require(grid)
create_plots <- function(selection) {
temp_plot <- list()
if(selection == 1)
{
temp_plot[[1]] <- hist(mtcars$mpg,
main="my histogram",
xlab="xlabel",
ylab="ylabel")
return(temp_plot)
}
if(selection == 2)
{
temp_plot[[1]] <- ggplot(mtcars, aes(x=mtcars$mpg)) +
geom_histogram(binwidth=0.10, colour="black", fill="white") +
ggtitle ("frequency!!") +
labs(x=mpg, y="frequency")
return(temp_plot)
}
if(selection == 3)
{
temp_plot[[1]] <- barplot(mtcars$mpg,
main="my barplot",
xlab="xlabel",
ylab="ylabel")
return(temp_plot)
}
}
plot_list2 <- list()
plot_list3 <- list()
plot_list2[[1]]<-create_plots(1) #ok
plot(plot_list2[[1]][[1]]) # ok
plot_list2[[2]]<-create_plots(2) #ok
plot(plot_list2[[2]][[1]]) #ok
plot_list2[[3]]<-create_plots(3) #ok
plot(plot_list2[[3]][[1]]) #prints some strange plot not my barplot, why?
plot_list3<-create_plots(1) #ok
plot(plot_list3[[1]]) #ok
plot_list3<-create_plots(2)
plot(plot_list3[[2]]) #subscript out of bounds error for a list of TWO items???
plot_list3<-create_plots(3) #ok
plot(plot_list3[[3]]) #subscript out of bounds error for a list of TWO items???