10

今天我注意到了一些奇怪的事情。我写了一个函数,它应该返回一个数据框和一个图,一个用 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))
}
4

1 回答 1

17

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

使用 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()
于 2012-08-03T16:09:39.330 回答