Повторяя через список матриц в 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 в комментариях.