假设我有如下数据:
val <- .65
set.seed(1)
distr <- replicate(1000, jitter(.5, amount = .2))
d <- density(distr)
由于stats::density
使用的是特定值bw
,因此不会在间隔中包含所有可能的值(因为它们是无限的):
d$x[ d$x > .64 & d$x < .66 ]
[1] 0.6400439 0.6411318 0.6422197 0.6433076 0.6443955 0.6454834 0.6465713 0.6476592 0.6487471
[10] 0.6498350 0.6509229 0.6520108 0.6530987 0.6541866 0.6552745 0.6563624 0.6574503 0.6585382
[19] 0.6596261
我想找到一种提供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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句