我是一名R老手,通常讨厌使用嵌套列表,因为它们看起来很棘手..但我不确定我能在这里避开它们.在这种情况下,我可以生成我想要的输出,但我不知道一旦创建列表,如何智能地分解列表.
我试图从一个数据集中为一个类的每个级别创建n个线性模型.运行所有模型后,我想要一个简单的表,其中包含每个级别的斜坡、拦截和类.下面的例子就是我想要的:
# Dummy data
d <- data.frame(x=rnorm(50, 10, 1),
y=rnorm(50, 0, 2),
class=c(rep('A',10),rep('B',10),rep('C',10),rep('D',10),rep('E',10)))
# Split the data by grouping variable
d.s <- split(d, d$class)
# Create a linear model from y~x in each class
coeffs <- function(df) {
m <- lm(y~x, data = df)$coefficients
}
m.s <- lapply(d.s, coeffs)
# How do I neatly get a data frame that looks like below out of m.s??
wanted <- data.frame(class=as.character(), slope=as.numeric(), intercept=as.numeric())
请原谅我对嵌套列表的厌恶和缺乏经验!经过很多行取消列出和区分行名后,我可以得到我想要的东西,但一定有更好的方法.我正在努力改变.