dist()
最初のステップとして、入力行列の各行の計算などを行い、スクリプトの 2 番目のステップとして、ステップ 1 で取得した出力行列の各ペアを使用して別の行列を作成する R スクリプトを作成しようとしています。計算。私の問題は、ステップ1から取得したすべてのマトリックスを「保存」できないことです。誰か良い戦略を教えてくれませんか?
私のコードは次のようになります。
n<- nrow (aa)
output <- matrix (0, n, n)
for (i in 1:n)
{
for (j in i:n)
{
akl<- function (dii){
ddi<- as.matrix (dii)
m<- rowMeans(ddi)
M<- mean(ddi)
r<- sweep (ddi, 1, m)
b<- sweep (r, 2, m)
return (b + M)
}
A<- akl(dist(aa[i,]))
B<- akl(dist(aa[j,]))
V <- sqrt ((sqrt (mean(A * A))) * (sqrt(mean(B * B))))
if (V > 0) {
output[i,j] <- (sqrt(mean(A * B))) / V else output[i,j] <- 0
}
}
}
akl
関数からすべての結果の行列を取得し、残りの計算に使用したいと思います。ここに示すスクリプトは、毎回 akl を計算し、大きな入力行列が問題になるため、時間がかかりすぎます。