R 使用非标准求值调用嵌套函数中的参数

R 使用非标准求值调用嵌套函数中的参数,r,arguments,non-standard-evaluation,R,Arguments,Non Standard Evaluation,我试图从一个简单的函数“加法器”中获取一个参数,然后使用一个循环来查看递增该参数的效果 我知道一定有更好的方法,比如构建一个可以生成更长数据帧的函数,或者构建一个没有第二个函数的嵌套循环。。。所以我欢迎这些 但我更感兴趣的是如何引用(?)然后解析(?)新函数中的参数,这里称为“a”或“b”(但函数会声明它们为“arg_to_change”),这里称为“adder_参数的change_” 加法器%变异(x=a*t,y=b*2) } 更改加法器参数您可以使用do.call并将要更改的参数作为列表传递

我试图从一个简单的函数“加法器”中获取一个参数,然后使用一个循环来查看递增该参数的效果

我知道一定有更好的方法,比如构建一个可以生成更长数据帧的函数,或者构建一个没有第二个函数的嵌套循环。。。所以我欢迎这些

但我更感兴趣的是如何引用(?)然后解析(?)新函数中的参数,这里称为“a”或“b”(但函数会声明它们为“arg_to_change”),这里称为“adder_参数的change_”

加法器%变异(x=a*t,y=b*2)
}

更改加法器参数您可以使用
do.call
并将要更改的参数作为列表传递

library(ggplot2)

change_of_adder_arguments <- function(arg_to_change) {
  output <- vector('list', 5)
  arg_to_change_string <- deparse(substitute(arg_to_change))
  for (i in 1:5) {
    output[[i]] <- ggplot(do.call(adder, setNames(as.list(i), 
                   arg_to_change_string)), aes(x, y)) + geom_point()
  }
  return(output)
}

plot <- change_of_adder_arguments(b)
库(ggplot2)
更改加法器参数您必须使用
库(rlang)
,但随后出现错误“
:=
只能在准静态参数中使用”我认为问题在于您的函数
加法器
没有以正确的方式处理其参数,但我还没有找到正确的方式
library(ggplot2)

change_of_adder_arguments <- function(arg_to_change) {
  output <- vector('list', 5)
  arg_to_change_string <- deparse(substitute(arg_to_change))
  for (i in 1:5) {
    output[[i]] <- ggplot(do.call(adder, setNames(as.list(i), 
                   arg_to_change_string)), aes(x, y)) + geom_point()
  }
  return(output)
}

plot <- change_of_adder_arguments(b)