簡體   English   中英

使用lapply返回線性模型的摘要

[英]returning summaries of linear models using lapply

任何人都可以解釋為什么以下lapply函數不起作用以及不涉及for循環的可能替代方法。

DV1 <- rnorm(20, 10, 3)
DV2 <- rnorm(20, 8, 3)
DV3 <- rnorm(20, 9, 3)
group <- rep(c("A", "B"), each = 2, length.out = 20)
df <- data.frame(group, DV1, DV2, DV3)

我想對多個結果變量進行分析。 在此示例中,我創建了一個結果變量列表以傳遞給lm函數。 現在我的理解是lapply將一個函數應用於列表並返回一個列表。 那么,為什么不能給我一個包含三個summary(lm())對象的列表,每個對象都是一個列表? 有什么方法可以執行我要使用的一組應用功能嗎?

cols <- list("DV1", "DV2", "DV3")

lapply(cols, function (x) summary(lm(x ~ group, data = df)))

不需要循環。 lm優雅地且(更重要)有效地處理多個因變量:

summary(lm(cbind(DV1, DV2, DV3) ~ group, data = DF))
summary(lm(sprintf("cbind(%s) ~ group", paste(cols, collapse = ",")), data = DF))

嘗試這個:

forms <- paste(cols, ' ~ group')
lapply(forms, lm, data = df)

或者,如果您只想打印摘要而不是保存輸出:

lapply(forms, function(x) summary(lm(x, data = df)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM