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