多个返回
问题描述:
我想显示相同的函数内部两个结果,即我写的代码如下:多个返回
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
>
我在做什么错?有人可以帮我吗?
感谢。
答
从我的评论复制上述
第一return
跳出功能。如果要执行和返回这两个语句,只使用一个return语句结尾,如 return(list(sum1, sum2))
或打印,返回 f(paste, sum1, sum2)
其中f
只是一些功能,它定义了打印返回格式。
答
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)返回变量并退出。 试试上面的一个。
'return(list(sum1,sum2))'。第一个'return'突破了功能。如果你想计算两者,只在最后使用一个return语句,或者打印,返回'f(paste,sum1,sum2'),其中'f'只是定义打印返回格式的一些函数。 –
问题是一旦你打电话回来,功能就结束了。如果你的语言支持数组,你可以返回一个包含两个返回值的数组。 'return([sum1,sum2])' – Pachonk
@Pachonk语言是R. –