获取已在函数内创建的变量

时间:2013-08-08 10:39:05

标签: r function variables extract

我创建了一个保存在.txt文件中的函数(很长)。 它工作得很好(我使用source(<>)来访问它)。 我的问题是我在该函数中创建了一些变量 即:

myfun<-function(a,b) {
Var1=....
Var2=Var1 + ..
}

现在我想得到那些变量。 当我在函数中包含return()时,它很好:屏幕上出现值,但是当我在函数中键入Var1 时,我有一条错误消息“无法找到该对象”。 我是R的新手,但我认为这可能是因为“myfun”在不同的环境中运行,而不是全球运营,但是当我这样做时

environment()
environment: R_GlobalEnv>
environment(myfun1)
environment: R_GlobalEnv>

在我看来问题出在其他地方......

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

如果你想以一种很好的方式做到这一点,写一个类,而不是提供一个打印方法。在这个类中,可以返回不可见的变量。一本涵盖这些主题的好书是"The Art of R programming"

一个简单的解决方法是将稍后需要的每个变量保存在列表中,而不是返回列表 (正如彼得指出的那样):

return(list(VAR1=VAR1, .....))

答案 1 :(得分:1)

我意识到这个答案超过3年但我相信您正在寻找的选项如下:

myfun <- function(a,b) {
  Var1 = (a + b) / 2   # do whatever logic you have to do here...
  Var2 <<- Var1 + a    # then output result to Global Environment with the "<<-" object.  
}

双“&lt;&lt; - ”赋值运算符将“Var2”输出到全局环境,然后您可以根据需要使用或引用它,而无需在函数内使用“return()”。