如何在一个因子变量的多个子集上循环线性回归?

我想写一个for循环,在一个因子变量的4个不同级别上分别运行4次相同的回归(相同的因变量和自变量)。然后我想保存每个线性回归的输出,每个层次有大约500行数据。

我最初的想法是做这样的事情,但我是R和不同的迭代方法的新手。

Regressionresults <- list()

for (i in levels(mydata$factorvariable)) {
  Regressionresults[[i]] <- lm(dependent ~ ., data = mydata)
}

我怀疑这很容易做到,但我不知道怎么做。

如果你能指导我找到任何帮助文档或其他资源,我可以学习如何编写这些类型的循环,这样我就不必再问类似的问题,我会很感激。

非常感谢

解决方案:

问题中代码的问题是。

  1. 在R中,通常最好先不要使用循环。
  2. 一般来说,i是用来表示顺序索引的,所以它不是一个好的选择,用于级别的名称。
  3. 循环的主体不做任何子集,所以每次迭代都会分配相同的结果。
  4. 发往SO的帖子应该有可复制的数据,而该问题并不包括这一点,而是提到了对象而没有定义其内容。 请阅读顶部的说明。 标签页。 下面我们利用内置的虹膜数据集来实现重现性。

下面是一些使用内置虹膜数据框架进行重现性的方法。 每个结果都会产生一个命名的列表,其中名字是Species的级别。

1)lm子集参数 Map 在级别上给出一个列表。

sublm <- function(x) lm(Petal.Width ~ Sepal.Width, iris, subset = Species == x)
levs <- levels(iris$Species)
Map(sublm, levs)

2) 循环 sublmlevs 均来自(1)。

L <- list()
for(s in levs) L[[s]] <- sublm(s)

(3) nlme 或使用 nlme 的 lmList

library(nlme)
L3 <- mList(Petal.Width ~ Sepal.Width | Species, iris)
coef(L3)
summary(L3)

给TA打赏
共{{data.count}}人
人已打赏
未分类

当只知道数组的行数时,如何访问数组中的元素?

2022-9-9 8:37:19

未分类

是否可以动态实例化一个写在字符串中的类,而不需要写到文件中?

2022-9-9 8:37:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索