R 从父环境向do.call传递参数
我正在尝试将参数从其父环境传递给do.call,但变量在本地环境中。如果能够做到这一点,那真的很方便,有没有什么变通方法可以让我在同一个函数中进行数据操作和do.callR 从父环境向do.call传递参数,r,function,R,Function,我正在尝试将参数从其父环境传递给do.call,但变量在本地环境中。如果能够做到这一点,那真的很方便,有没有什么变通方法可以让我在同一个函数中进行数据操作和do.call data(cars) function1 <- function(data, function2, arguments){ manipulated.data <- data[1:(dim(data)[1]/2),] # Arbitrary function results <
data(cars)
function1 <- function(data, function2, arguments){
manipulated.data <- data[1:(dim(data)[1]/2),] # Arbitrary function
results <- do.call(function2, arguments)
}
function1(data = cars, function2 = "mean", arguments = list(arg1 = manipulated.data$speed)
有帮助吗
data(cars)
function1 <- function(data, function2, arguments){
manipulated.data <- data[1:(dim(data)[1]/2),] # Arbitrary function
do.call(function2, eval(parse(text=arguments)))
}
function1(data = cars, function2 = "mean", arguments = 'list(x = (manipulated.data$speed))')
我认为一个更好的解决方案应该使用lazyeval包…do.callfunction2,function1中的listsubstitutearguments似乎与arguments=Operated.data$speed一起工作