我有一个看起来像这样的距离函数
sed <- function(x, y){
x <- x / sum(x)
y <- y / sum(y)
x <- x[y > 0]
y <- y[y > 0]
y <- y[x > 0]
x <- x[x > 0]
xy <- x + y
a <- x / xy
b <- y / xy
w <- xy / 2
2 * prod(a^(a*w) * b^(b*w)) - 1
}
我有一些看起来像这样的数据:
> head(x)
x y
[1,] 0.5836377 0.8120142
[2,] 0.4642154 0.8857223
[3,] 0.8707579 0.4917120
[4,] 0.4688734 0.8832654
[5,] 0.8105051 0.5857316
[6,] 0.6409956 0.7675446
其中每一行是一个具有 x 和 y 坐标的点。所以 sed 计算行之间的距离。
我想使用距离函数绘制热图,但出现以下错误,我该如何解决?
> heatmap(as.matrix(x), distfun=as.dist(sed))
Error in as.vector(x, mode) :
cannot coerce type 'closure' to vector of type 'any'