我正在使用lavaan軟件包,我的意圖是將我的模型殘差作爲數據框用於進一步的使用。我運行了幾個有分組變量的模型。這裏的基本工作流程:從R lavaan列表矩陣中提取殘差值
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