0
Я пытаюсь передать varable выражение в lazyeval функции:параметр в аргументе для ленивых оценки
test <- function(expr){
tmp <- iris[eval(substitute(expr), iris), ]
#actually do and return complicated stuff with tmp
return(data.frame(n = nrow(tmp), sepal.length = mean(tmp$Sepal.Length)))
}
test.species <- function(species){
return(test(Species == substitute(species)))
}
#usage:
test.species("virginica")
Тест функция работает просто отлично. Но почему test.species не работает?
Спасибо! Это прекрасно работает. Как я только что узнал, eval (substitute (Species ==. (Species))) тоже будет работать. Есть ли разница между bquote и substitute здесь? –
Имейте в виду, что нестандартная оценка может быть приятной, но обычно лучше придерживаться стандартной оценки (которая, например, легче отлаживается). – Roland
@HengruiJiang Где вы это положили? Это не должно работать. – Roland