gpt4 book ai didi

r - 如何将不等 lm 对象长度的列表组合到数据框中?

转载 作者:行者123 更新时间:2023-12-04 22:49:38 24 4
gpt4 key购买 nike

我喜欢提取每个 lm 对象的系数和标准误差,并将它们组合成一个 data.frame,用 NA 填充缺失的预测变量。

    set.seed(12345)
x<-matrix(rnorm(1000),nrow=100,ncol=10)
colnames(x)<-paste("x",1:10,sep="")
df<-data.frame(y=rnorm(100),x)
m1<-vector('list', 10)
for ( i in 2:11){
eqn <- as.formula(paste("y ~", paste(colnames(df)[2:i], collapse='+')))
m1[[i-1]] <- lm(eqn, df)
}

我们欢迎所有的建议!

最佳答案

这应该可以解决问题:

cList <- lapply(m1, coef)
nms <- names(cList[[11]])

cMat <- do.call(rbind, lapply(cList, function(X) X[nms]))
cDF <- as.data.frame(cMat); names(cDF) <- nms # Pretty up the results

cDF[1:5, 1:6]
# (Intercept) x1 x2 x3 x4 x5
# 1 -0.2345084 0.2027485 NA NA NA NA
# 2 -0.2334043 0.2074812 -0.05006297 NA NA NA
# 3 -0.2299977 0.2099620 -0.03892985 0.09777829 NA NA
# 4 -0.2095798 0.2221179 -0.02710201 0.06403695 -0.1184191 NA
# 5 -0.2060406 0.2180674 -0.01062671 0.06632922 -0.1045128 0.130937

编辑 :

要将标准错误收集到类似的结构中,只需执行以下操作:
seList <- lapply(m1, function(X)  coef(summary(X))[,2])
seMat <- do.call(rbind, lapply(cList, function(X) X[nms]))
seDF <- as.data.frame(cMat); names(seDF) <- nms

关于r - 如何将不等 lm 对象长度的列表组合到数据框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10212777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com