Я использую пакет lavaan, и мое намерение состоит в том, чтобы получить остатки моей модели в качестве данных для дальнейшего использования. Я запускаю несколько моделей с группировкой переменных. Вот основной рабочий процесс:Извлечение остаточных значений из матриц лавановых списков в R
require(lavaan)
df <- data.frame(
y1 = sample(1:100),
y2 = sample(1:100),
x1 = sample(1:100),
x2 = sample(1:100),
x3 = sample(1:100),
grpvar = sample(c("grp1","grp2"), 100, replace = T))
semModel <- list(length = 2)
semModel[1] <- 'y1 ~ c(a,b)*x1 + c(a,b)*x2'
semModel[2] <- 'y1 ~ c(a,b)*x1
y2 ~ c(a,b)*x2 + c(a,b)*x3'
funEstim <- function(model){
sem(model, data = df, group = "grpvar", estimator = "MLM")}
fits <- lapply(semModel, funEstim)
residuals <- lapply(fits, function(x) resid(x, "obs"))
Теперь результирующий объект остатков меня задевает. Это список матриц, вложенных несколько раз. Как получить каждую из матриц в виде отдельного блока данных без какого-либо жесткого кодирования? Я не хочу их перечислять, так как это потеряет некоторую информацию.
Похоже, у вас есть ошибка редактирования/копирования/вставки ближе к концу вашего кода - функция не имеет закрывающей скобки. Кроме того, что вы подразумеваете под «без какого-либо жесткого кодирования»? –
Вы правы. Я это исправил. – Antti