我尝试将参数从父环境传递给do.call,但是变量在本地环境中。这样做真的很方便,有什么解决办法可以让我在同一个函数中执行数据操作和do.call呢?
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)发布于 2017-02-19 11:44:17
有用吗?
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))')我认为一个更好的解决方案应该使用乳胶包装..。
https://stackoverflow.com/questions/42326719
复制相似问题