采取基本功能
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)
}
谢谢!
答案 0 :(得分:5)
答案 1 :(得分:4)
是和否。
是,从技术上讲,可以对函数范围之外的变量进行赋值,以便在其他地方可以访问它们。通常,这是使用<<-
完成的,如果找不到分配的变量,则调用全局环境,或调用assign
并直接指定环境。
但是...
否,你应该不这样做。 R是一种函数式语言,这意味着它的用途使得它的函数不会产生副作用。如果你太过违反这个原则,你将不可避免地遇到严重的问题,即使不是不可能调试也很困难。
如果您在稍后需要的函数中创建变量,则最佳做法是将它们全部返回到列表中,如Benito所述。