我想使用pnorm创建函数a(v,x),但pnorm的标准偏差取决于x。 R返回错误:数学函数的非数字参数。
我对R还是很陌生,所以我真的不知道该如何处理该问题,但是我没有在其他地方找到任何答案。
x0 = 6
R = 5
r = 2
p=0.5
sig = 5
sigR <- function(x){ sig*(x - r)*sqrt(p*(1-p))}
a <- function(v,x) {
pnorm(v + p*(x0-x) + (1-p)*(R-r), sd = sigR)
}
感谢您的帮助。
答案 0 :(得分:3)
由于sigR
是x
的一个函数,因此您需要将x
的值传递给该函数以获取常量。 sd=
参数需要一个数字值,而不是一个函数。
a <- function(v,x) {
pnorm(v + p*(x0-x) + (1-p)*(R-r), sd = sigR(x))
}