将函数和函数值一起返回

时间:2017-07-01 08:57:56

标签: r function plot ggplot2 lm

我有这样的功能:

fun <- function(dataset){
  require(ggplot2)
  g <- ggplot(dataset, aes(x = x, y = y)) + geom_smooth(method = "lm") + geom_point()

l<-lm(y~x)
return (list(l, g))
    }

我希望返回情节和值,但它不会返回情节,我会面临这个错误:

  

.Call.graphics(C_palette2,.Call(C_palette2,NULL))出错:

  无效的图形状态

我该怎么办?

1 个答案:

答案 0 :(得分:1)

以下作品,您可以获得情节。然而,R警告说这不是这样做的方式。

fun <- function(dataset){
  require(ggplot2)
  p <- ggplot(dataset, aes(x = x, y = y)) + 
       geom_smooth(method = "lm") + geom_point()

  l <- lm(y~x, data=dataset)
  return (list(l, p))
}

dataset <- data.frame(x= 1:10, y=1:10)
out <- fun(dataset)

编辑:我看过警告,看起来像你可以忽略的东西。请参见链接https://stat.ethz.ch/pipermail/r-devel/2016-December/073554.html