Я написал функцию для вычисления матрицы различий между 60 матрицами, как показано ниже.sentence1
- это список матриц, а result1
- пустая матрица 60 x 60, в которую можно загрузить результаты.
# to make code reproducible
library(dtw)
result1 <- matrix(, nrow = 60, ncol = 60)
for (a in 1:60){
assign(paste(a, "1", sep="_"), matrix(runif(4), nrow = 2, ncol = 2))
}
sentence1 <- mget(ls(pattern="_1$"))
# function I wrote
comp_diss_matrix <- function(sentence, result){
for (i in 1:60) {
for (j in 1:60) {
result[i, j] <- dtw(sentence[[i]], sentence[[j]], distance.only = TRUE)$normalizedDistance
}
}
}
comp_diss_matrix(sentence1, result1)
Однако, если я заменяю переменные в функции на сами списки, это работает.
for (i in 1:60) {
for (j in 1:60) {
result1[i, j] <- dtw(sentence1[[i]], sentence1[[j]], distance.only = TRUE)$normalizedDistance
}
}
Что я могу сделать, чтобы исправить свою функцию?