R-在函数结束后访问在用户定义函数内创建的变量

时间:2012-06-15 22:36:44

标签: r

采取基本功能

fun<-function(){
x<-c(1,2,3,4,5)
y<-c(1,2,3,4,5)

t<-x+y
return(t)

}

运行该函数后,有没有办法可以访问函数中创建的任何变量。通过指定变量 - 如下所示:

fun$y

fun$t

还是有某种方法要求R将变量保存在函数中以便在我当前的R会话期间使用(我不想永久保存它)。 AKA的一些东西:

fun<-function(){
x<-c(1,2,3,4,5)
y<-c(1,2,3,4,5)

t<-x+y
Y<-save y for latter use
T<-save T for latter use
return(t)

}

谢谢!

2 个答案:

答案 0 :(得分:5)

您不能在其范围之外使用变量。

您可以使用列表从函数中返回多个值。

这是一个很好的example

答案 1 :(得分:4)

是和否。

,从技术上讲,可以对函数范围之外的变量进行赋值,以便在其他地方可以访问它们。通常,这是使用<<-完成的,如果找不到分配的变量,则调用全局环境,或调用assign并直接指定环境。

但是...

,你应该这样做。 R是一种函数式语言,这意味着它的用途使得它的函数不会产生副作用。如果你太过违反这个原则,你将不可避免地遇到严重的问题,即使不是不可能调试也很困难。

如果您在稍后需要的函数中创建变量,则最佳做法是将它们全部返回到列表中,如Benito所述。