Как исправить функцию в R, которая не работает, но код делает - PullRequest
0 голосов
/ 21 марта 2019

Я написал функцию для вычисления матрицы различий между 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
   }
}

Что я могу сделать, чтобы исправить свою функцию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...