gpt4 book ai didi

r - 从列表子元素列表中提取矩阵,保留矩阵的列表/子列表索引

转载 作者:行者123 更新时间:2023-12-02 02:03:04 27 4
gpt4 key购买 nike

r 的新手,希望找到一种优雅的方法来解决看似简单的问题。问题的背景如下:我在滚动时间段对一组公司进行回归。我将每个回归的摘要存储在列表列表中。所以,例如:

results[[i]][[t]] = summary(lm(y~x)),其中 yx是公司 i 在时间 t 的关联向量。我想从 results 中提取像 sigma 这样的矩阵:

sigma[i,t] = results [[i]] [[t]]$sigma

显然我可以使用嵌套循环来做到这一点,但似乎必须有一种简单的方法可以一步提取这个矩阵,比如 lapply、sapply 等。我在整个网络和这个博客上看到了类似的问题,但未能正确地使它们适应这个问题。另一个问题是结果中的一些条目为“空”,当特定公司在特定时间没有足够的数据来运行回归时,就会发生这种情况。

如有任何帮助或指导,我们将不胜感激。

最佳答案

您可以使用lapplydo.call:

首先创建一些示例数据:

results <- list()
for (i in 1:5){
results[[i]] <- list()
for (t in 1:3){
x <- sample(10)
y <- sample(10)
results[[i]][[t]] <- summary(lm(x~y))
}
}

然后用西格玛创建新矩阵:

sigma <- do.call(rbind, lapply(results, function(x)lapply(x, function(y)y$sigma)))
colnames(sigma) <- paste("t", 1:ncol(sigma), sep="")
rownames(sigma) <- paste("c", 1:nrow(sigma), sep="")

矩阵如下所示:

> sigma
t1 t2 t3
c1 2.302831 3.201325 3.154122
c2 3.066436 3.179956 3.146427
c3 2.752409 3.189946 2.819306
c4 3.211249 3.210777 2.983795
c5 3.179956 3.179956 2.340034

关于r - 从列表子元素列表中提取矩阵,保留矩阵的列表/子列表索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16342819/

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