私はこのような距離関数を持っています
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'