选择3D数据的二维截断?

时间:2014-06-16 16:53:03

标签: r

我从ks::kde函数获取密度数据,这是一个3D模型。 然后我收到3个维度中第一个的值,这样我就可以得到一个平坦的数据片段,然后对2d切片的3d数据进行操作。

直到现在,当我需要1D线时,我会做

splinefun(predict(my_kde_3d_result, x=rep(0, 10, 0.1))

但是对于predict来说非常慢的n ^ 2挑战的2D切片,以及splinefun,我甚至找不到2D功能的版本。

我还剩下什么?

1 个答案:

答案 0 :(得分:1)

设置示例:

library(ks)
set.seed(101)
d <- data.frame(x=rnorm(1000),y=rnorm(1000),z=rnorm(1000))
k1 <- kde(as.matrix(d))

现在抓取与x==-2

对应的切片
target.x <- -2
w <- which.min(abs(k1$eval.points[[1]]-target.x))
contour(k1$estimate[w,,])

显然,您可以针对任何特定xyz值执行此操作:如果您希望切片与xyz平面不平行,则会变得更难...如果您事先知道要预测(例如)x==-2,您可以相应地将eval.points参数设置为kde