如何将函数中的所有变量(同时)分配到全局环境中?

时间:2016-04-09 05:12:15

标签: r

这是我想要获得的,但是避免添加" e $"在函数内部的所有变量之前。感谢

e <- globalenv()
f <- function(P) {
  e$c <- P + 1
  e$d <- c + 2

}

f(2)

1 个答案:

答案 0 :(得分:0)

这是一个非常坏主意,但你可以

f <- function(P) {
  x <<- P + 1
  y <<- x + 2

}

f(2)

我没有使用变量c,因为它也是一个(相当重要的)函数名称。确实会失败。

如果你需要将第一个函数(f1)返回的多个值传递给另一个函数(f2),你应该做的是:

f1 <- function(P) {
  x <- P + 1
  y <- x + 2
  list(x=x, y=y)  
}

f2 <- function(x, y) {
   x + y
}

r <- f1(2)
f2(r$x, r$y)

r <- f1(2)
do.call(f2, r)