2

取一个基本函数

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 会话期间使用(我不希望永久保存它)。又名类似的东西:

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)

}

谢谢!

4

2 回答 2

5

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

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

这是一个很好的例子

于 2012-06-15T22:50:22.003 回答
4

是和不是。

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

但...

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

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

于 2012-06-15T23:14:18.603 回答