[英]Why does this statement involving the function curve() return an error in R?
我只是想知道為什么這個語句在 R 中返回錯誤
> curve(function(x) x^2, from = -2, to = 2)
##Error in curve(function(x) x^2, from = -2, to = 2) :
#'expr' did not evaluate to an object of length 'n'
我知道這句話很管用。
> curve(x^2, from = -2, to = 2)
據我所知,R 中 function curve() 的第一個參數應該是向量化的 function。因此,作為參數的function(x) x^2也應該是向量化的 function,因為它返回一個數值向量,其長度等於輸入數值向量的長度。
但是,我不能確定,因為我沒有嚴格的編程背景。 顯然,我錯了。
我認為expr=
作為curve
的第一個參數是在尋找 function 的名稱,而不是 function 本身。
expr:function 的名稱,或者寫為“x”的 function 的調用或表達式,其計算結果為與“x”長度相同的 object。
因此需要在外部聲明 function 才能工作:
f <- function(x) x^2
curve(f, from=-2, to=2)
否則你可以 plot function 直接作為plot.function
,它實際上調用 function 內部的curve
作為最后一行:
plot.function
#function (x, y = 0, to = 1, from = y, xlim = NULL, ylab = NULL,
# ...)
#{
# <snip>
# curve(expr = x, from = from, to = to, xlim = xlim, ylab = ylab,
# ...)
#}
像:
plot(function(x) x^2, xlim=c(-2,2))
或者也可以做
curve((function(x) x^2)(x), from = -2, to = 2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.