多个返回同一个函数

时间:2016-09-25 07:48:07

标签: r function

我试图在同一个函数中显示两个结果,我写的代码如下:

myFun <- function(x,y,z){
  sum1 <- x+y
  print("The first sum is:")
  return(sum1)

  sum2 <- y+z
  print("The second sum is:")
  return(sum2)

}

但是,我只得到sum1作为输出。之后,从不执行sum2块。

我得到的结果是:

> myFun(2,3,4)
[1] "The first sum is:"
[1] 5
> 

我做错了什么?有人可以帮助我吗?

感谢。

2 个答案:

答案 0 :(得分:1)

myFun <- function(x,y,z){
 sum1 <- x+y
print("The first sum is:")

sum2 <- y+z
print("The second sum is:")
return(sum2)

}

return(variable)返回变量并退出。  试试上面的那个。

答案 1 :(得分:1)

从我上面的评论中复制

第一个return突破了该功能。如果要执行并返回两个语句,最后只使用一个return语句,例如 return(list(sum1, sum2)) 或打印,返回 f(paste, sum1, sum2) 其中f只是定义打印返回格式的函数。