2016-02-03 115 views
1

我已經編寫了R函數myplot(),該函數在區間[-10,10]上繪製了與提供的函數FUN相對應的曲線。R:作爲另一個函數的參數的函數

myplot <- function(FUN) 
{ 
    curve(FUN(x), xlim = c(-10, 10)) 
} 

例如

myplot(FUN = dnorm) 

enter image description here

我如何添加參數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)沒有給出預期的圖片...

+0

嘗試'點< - 列表(...); 曲線(FUN(x,unlist(dots)),xlim = c(-10,10))' – akrun

+0

@akrun:謝謝!我已經編輯了我的帖子,還有其他問題。再次感謝你。 – user7064

+0

如果您在發佈新問題時有不同的問題 – erasmortg

回答

2

您的原始功能正常工作(但您的原始示例有錯字)

myplot <- function(FUN, ...) 
{ 
    curve(FUN(x, ...), xlim = c(-10, 10)) 
} 

myplot(dnorm) 
myplot(dnorm, mean = 5) 
myplot(dnorm, mean = 5, sd=2) 

都似乎工作。

相關問題