Повторяя через список матриц в R

Я пытаюсь пройти через список матриц (matList), чтобы взять определитель каждой матрицы и вернуть новый список всех значений определителя.

До сих пор я пробовал это:

matList

detList <- list()
for(i in matList){
  detList <- c(det(matList[i]))
  i + 1 
}

detList

Но я получаю сообщение об ошибке: Ошибка в UseMethod("определитель"): к объекту класса "список" не применим метод для "определителя"

Я знаю, что не могу взять определитель списка, но я вызвал эту функцию для каждой матрицы, поэтому я не уверен, почему я получаю это сообщение об ошибке или как его исправить.

1 ответ

Решение

Я думаю, что это пример учебника для использования lapply (или же sapply в этом отношении). Есть ли

detList <- lapply(matList, det)

Работа?

Функционально эквивалентно

detList <- list()
for (i in matList){
  detList[i] <- det(matList[[i]])
}

это был бы правильный цикл, как объяснил @joran в комментариях.

Другие вопросы по тегам