R 非标准评估:将变量的名称作为参数传递给函数,并让函数为其赋值
R nonstandard evaluation: pass the name of a variable as a parameter to a function and have the function assign a value to it
我确定这在某处得到了回答,但无法找到。 Programming with dplyr也没有给出答案
我需要将变量名作为参数传递给函数,并让函数为其赋值。
assign_x <- function(xf = x){
xf <- 5
}
rm(x)
assign_x(x)
x
用例:
我想为 odbc::dbConnect 编写一个包装器,我在其中检查连接是否已经有效,并在需要时回收连接。有时,如果查询挂起,我需要断开连接然后重新连接以使连接正常工作。
使用 parent.frame()
在调用者的环境中分配。
assign_x <- function(xf = 'x', value = 5){
x <- deparse(substitute(xf))
assign(x, value, envir = parent.frame())
}
rm(x)
Warning message:
In rm(x) : object 'x' not found
assign_x(x)
x
#[1] 5
assign_x(y, pi)
y
#[1] 3.141593
我确定这在某处得到了回答,但无法找到。 Programming with dplyr也没有给出答案
我需要将变量名作为参数传递给函数,并让函数为其赋值。
assign_x <- function(xf = x){
xf <- 5
}
rm(x)
assign_x(x)
x
用例:
我想为 odbc::dbConnect 编写一个包装器,我在其中检查连接是否已经有效,并在需要时回收连接。有时,如果查询挂起,我需要断开连接然后重新连接以使连接正常工作。
使用 parent.frame()
在调用者的环境中分配。
assign_x <- function(xf = 'x', value = 5){
x <- deparse(substitute(xf))
assign(x, value, envir = parent.frame())
}
rm(x)
Warning message:
In rm(x) : object 'x' not found
assign_x(x)
x
#[1] 5
assign_x(y, pi)
y
#[1] 3.141593