0

从 R 文档链接中的以下代码中,我想弄清楚如何为数据框的每个原始点提取单个值(“密度”),这样我就可以将新列用于进一步的应用程序我想到了 3D 空间中的“点”密度。

我查看了这个 SO 问题:link,但是该代码给出了一个 51 层的矩阵。我不知道如何获得 150 个点值。

就我而言,我担心使用的三元示例:

fhat <- kde(x=iris[,1:3])

这是代码,它给出了一个很好的情节,但我无法为 iris 数据集中的 150 行/点中的每一个获得一个值

library(ks)
library(MASS)
data(iris)

## univariate example
fhat <- kde(x=iris[,2])
plot(fhat, cont=50, col.cont="blue", cont.lwd=2, xlab="Sepal length")

## bivariate example
fhat <- kde(x=iris[,2:3])
plot(fhat, display="filled.contour2", cont=seq(10,90,by=10))
plot(fhat, display="persp", thin=3, border=1, col="white")

## trivariate example
fhat <- kde(x=iris[,2:4])
plot(fhat, drawpoints=TRUE)
4

1 回答 1

2

我假设您指kde()的是ks包装中的?

如果是这样,请使用参数eval.points来使用估计值计算点的向量/矩阵的密度:

## univariate example

library(ks)

fhat <- kde(x = iris[,2])
plot(fhat, cont=50, col.cont="blue", cont.lwd=2, xlab="Sepal length")

estimate <- kde(iris[,2], eval.points = iris[,2])$estimate
points(iris[,2], estimate)

在此处输入图像描述

类似地适用于更高的输入维度。

于 2017-11-25T16:32:00.040 回答