NA 由 approxfun() 函数 R 返回
NA returned by approxfun() function R
obs=log(rexp(500))
plot(density(obs))
我正在使用 approxfun()
R 函数创建一个捕获此分布的函数,并能够为任何传递的 x
值 return 一个 y
值(通过使用插值)。
fun=approxfun(density(obs)$y)
# create a sequence of x values
seq=round(seq(min(obs),max(obs),length.out=50),2)
# find out which y values assigned by fun are not equal to NA
seq[-which(is.na(fun(seq)))]
returns
1.11 1.27 1.43 1.60
为什么所有小于 1 的 x
值(确切地说是从 -6.38 to 0.95
开始)传递给函数都分配了一个 NA
y
值? 函数是为 -6, -2
等定义的?我本来期望 0, 0.13
左右的插值,等等。不是 NAs
...
应该是这样的:
fun <- approxfun(density(obs))
您在编写 fun=approxfun(density(obs)$y)
时不提供 x 值。所以,你应该省略 $y
.
因此:
obs <- log(rexp(500))
fun <- approxfun(density(obs))
seq <- round(seq(min(obs), max(obs), length.out = 50), 2)
seq[-which(is.na(fun(seq)))]
# numeric(0)
没有 NA
s.
obs=log(rexp(500))
plot(density(obs))
我正在使用 approxfun()
R 函数创建一个捕获此分布的函数,并能够为任何传递的 x
值 return 一个 y
值(通过使用插值)。
fun=approxfun(density(obs)$y)
# create a sequence of x values
seq=round(seq(min(obs),max(obs),length.out=50),2)
# find out which y values assigned by fun are not equal to NA
seq[-which(is.na(fun(seq)))]
returns
1.11 1.27 1.43 1.60
为什么所有小于 1 的 x
值(确切地说是从 -6.38 to 0.95
开始)传递给函数都分配了一个 NA
y
值? 函数是为 -6, -2
等定义的?我本来期望 0, 0.13
左右的插值,等等。不是 NAs
...
应该是这样的:
fun <- approxfun(density(obs))
您在编写 fun=approxfun(density(obs)$y)
时不提供 x 值。所以,你应该省略 $y
.
因此:
obs <- log(rexp(500))
fun <- approxfun(density(obs))
seq <- round(seq(min(obs), max(obs), length.out = 50), 2)
seq[-which(is.na(fun(seq)))]
# numeric(0)
没有 NA
s.