ppt=function(v, tail = 0.5){
if (tail == 1){
6/pi^2/v^2
} else {
if (v < 11) {
(1-tail)*(11-v)/55
} else {tail*6/pi^2/(v-10)^2}
}
}
curve(ppt(tail = 0.2))
Error in curve(ppt(tail = 0.2)) :
'expr' must be a function, or a call or an expression containing 'x'
我應該如何為具有不同變數尾部值的函式 ppt() 繪制平滑曲線?
謝謝你。
uj5u.com熱心網友回復:
(1) 重寫 ppt 以對其進行矢量化(未顯示),或者 (2) 使用 Vectorize,如下所示,在這種情況下,不必修改 ppt。也使用這種語法。
curve(Vectorize(ppt)(x, tail = 0.2), ylab = "ppt")

uj5u.com熱心網友回復:
也許以下技巧?
w = 0.2
g <- function(z) ppt(z, tail = w)
curve(g)
并且不要忘記替換,正如@MrFlick 在評論中指出的那樣:
if (v < 11) {
(1-tail)*(11-v)/55
} else {tail*6/pi^2/(v-10)^2}
經過
ifelse(v < 11, (1-tail)*(11-v)/55, tail*6/pi^2/(v-10)^2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/438317.html
上一篇:如何將空輸入轉換為已定義變數?
