R 如何获得stats::density中特定值的密度估计值?

R 如何获得stats::density中特定值的密度估计值?,r,density-plot,R,Density Plot,假设我有如下数据: val <- .65 set.seed(1) distr <- replicate(1000, jitter(.5, amount = .2)) d <- density(distr) 我想找到一种方法为密度函数提供val,这样它将返回其d$y估计值(然后我将使用它为密度图的区域着色) 我猜不出这个问题有多傻,但我找不到快速的解决办法 我想通过d$y的线性插值来获得它,对应于d$x的两个更接近val的值。有没有更快的方法?这说明了approxfun的用法:

假设我有如下数据:

val <- .65
set.seed(1)
distr <- replicate(1000, jitter(.5, amount = .2))
d <- density(distr)
我想找到一种方法为密度函数提供
val
,这样它将返回其
d$y
估计值(然后我将使用它为密度图的区域着色)

我猜不出这个问题有多傻,但我找不到快速的解决办法


我想通过
d$y
的线性插值来获得它,对应于
d$x
的两个更接近
val
的值。有没有更快的方法?

这说明了
approxfun的用法:

> Af <- approxfun(d$x, d$y)
> Af(val)
[1] 2.348879
> plot(d(
+ 
> plot(d)
> points(val,Af(val) )
> png();plot(d); points(val,Af(val) ); dev.off()
>自动对焦(val)
[1] 2.348879
>绘图(d)(
+ 
>地块(d)
>积分(val,Af(val))
>png();绘图(d);点(val,Af(val));开发关闭()

通过使用线性插值,我得到了很好的结果,但是
approxfun
做得很好;)谢谢!
approxfun
使用线性插值。
> Af <- approxfun(d$x, d$y)
> Af(val)
[1] 2.348879
> plot(d(
+ 
> plot(d)
> points(val,Af(val) )
> png();plot(d); points(val,Af(val) ); dev.off()