循环遍历R中lm()中的各种数据子集 [英] Loop through various data subsets in lm() in R

查看:49
本文介绍了循环遍历R中lm()中的各种数据子集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想遍历引用不同数据子集的各种回归,但是我无法适当地调用不同的子集.例如:

I would like to loop over various regressions referencing different data subsets, however I'm unable to appropriately call different subsets. For example:

dat <- data.frame(y = rnorm(10), x1 = rnorm(10), x2 = rnorm(10), x3 = rnorm(10) ) 
x.list <- list(dat$x1,dat$x2,dat$x3)  
dat1 <- dat[-9,] 

fit <- list()
for(i in 1:length(x.list)){ fit[[i]] <- summary(lm(y ~ x.list[[i]], data = dat))}         
for(i in 1:length(x.list)){ fit[[i]] <- summary(lm(y ~ x.list[[i]], data = dat1))}         

有没有一种方法可以调用"dat1",使其相应地子集其他变量?感谢您的任何建议.

Is there a way to call in "dat1" such that it subsets the other variables accordingly? Thanks for any recs.

推荐答案

我不确定将协变量复制到这样的新列表中是否有意义.这是一种遍历列并动态构建公式的方法

I'm not sure it makes sense to copy your covariates into a new list like that. Here's a way to loop over columns and to dynamically build formulas

dat <- data.frame(y = rnorm(10), x1 = rnorm(10), x2 = rnorm(10), x3 = rnorm(10) ) 
dat1 <- dat[-9,] 
#x.list not used

fit <- list()
for(i in c("x1","x2","x3")){ fit[[i]] <- summary(lm(reformulate(i,"y"), data = dat))}   
for(i in c("x1","x2","x3")){ fit[[i]] <- summary(lm(reformulate(i,"y"), data = dat1))}   

这篇关于循环遍历R中lm()中的各种数据子集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆