Я написал функцию R myplot()
, которая рисует кривую, соответствующую заданной функции FUN
на интервале [-10, 10].R: Функция как аргумент другой функции
myplot <- function(FUN)
{
curve(FUN(x), xlim = c(-10, 10))
}
Например
myplot(FUN = dnorm)
дает
Как я могу добавить аргументы FUN
? Например, предположим, что я хочу, чтобы построить нормальную плотность со средним значением 5.
После комментария @ akrun, я могу сделать что-то вроде этого:
myplot <- function(FUN, ...)
{
args <- list(...)
curve(FUN(x, unlist(args)), xlim = c(-10, 10))
}
myplot(dnorm, mean = 5)
Но тогда
> myplot(FUN = dnorm)
Error in FUN(x, unlist(args)) :
Argument non numérique pour une fonction mathématique
Кроме того, myplot(FUN = dnorm, mean = 5, sd = 2)
не дает ожидаемого изображения ...
Попробуйте 'dots <- list (...); кривая (FUN (x, unlist (точки)), xlim = c (-10, 10)) ' – akrun
@akrun: Спасибо! Я редактировал свой пост с дополнительными вопросами. Еще раз спасибо. – user7064
Если у вас есть другой вопрос, – erasmortg