0

我确信这在某处得到了回答,但无法找到。用 dplyr 编程也没有给出答案。

我需要将变量的名称作为参数传递给函数,并让函数为其赋值。

assign_x <- function(xf = x){
  xf <- 5
}
rm(x)
assign_x(x)
x

用例:

我想为 odbc::dbConnect 编写一个包装器,在其中检查连接是否已经有效,并在需要时回收连接。如果查询挂在我身上,有时我需要断开连接然后重新连接才能使连接正常工作。

4

1 回答 1

1

用于parent.frame()分配调用者的环境。

assign_x <- function(xf = 'x', value = 5){
  x <- deparse(substitute(xf))
  assign(x, value, envir = parent.frame())
}

rm(x)

警告消息:
在 rm(x) 中:找不到对象“x”

assign_x(x)
x
#[1] 5

assign_x(y, pi)
y
#[1] 3.141593
于 2019-09-26T16:49:16.793 回答