Today I noticed something strange. I wrote a function which should return a dataframe and a plot, a plot produced with ggplot2.
But if I run the function, either the plot will not appear or the dataframe.
Do you know this problem and can give me a solution to it?
Thank you very much!
Rainer
Here is a dummy function to make myself clear:
dummyfunct<-function(){
df <- data.frame(time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23))
ggplot(data=df, aes(x=time, y=total_bill)) + geom_bar(aes(fill=time))
return(df)
}
or
dummyfunct<-function(){
df <<- data.frame(time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23))
ggplot(data=df, aes(x=time, y=total_bill)) + geom_bar(aes(fill=time))
}
I'll answer but I know this is a repeated question and it may likely get closed:
With ggplot you need to explicitally use print
inside a function as in:
dummyfunct <- function(){
df <- data.frame(time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(14.89, 17.23))
x <- ggplot(data=df, aes(x=time, y=total_bill)) + geom_bar(aes(fill=time))
print(x)
return(df)
}
dummyfunct()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With