自定义函数,ggplot和返回值

时间:2012-08-03 16:04:45

标签: 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)
} 

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))
}

1 个答案:

答案 0 :(得分:9)

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

使用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()