自定义函数,ggplot和返回值

rai*_*ner 8 r ggplot2

今天我注意到一些奇怪的事 我写了一个函数,它应该返回一个数据帧和一个图,一个用ggplot2生成的图.

但是如果我运行该函数,则不会出现图或数据帧.

你知道这个问题,可以给我一个解决方案吗?

非常感谢你!

莱纳

这是一个让我自己清楚的虚拟函数:

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)
} 
Run Code Online (Sandbox Code Playgroud)

要么

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))
}
Run Code Online (Sandbox Code Playgroud)

Tyl*_*ker 12

我会回答,但我知道这是一个重复的问题,它可能会被关闭:

使用ggplot,您需要print在函数内部明确使用,如:

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()
Run Code Online (Sandbox Code Playgroud)