R 重命名模型对象中的术语

R 重命名模型对象中的术语,r,R,我有一个回归模型列表,所有回归模型都有相同数量的项(即相同数量的预测变量)。实质上,它们都有不同的模型术语是正确的。但是,当把它们放在回归表中时,我希望它们所有的模型都共享一个公式,只是为了表示 一些指示性数据 library(plyr) d1 <- data.frame(y = rnorm(100), x1 = runif(100), x2 = runif(100), x3 = runif(100),

我有一个回归模型列表,所有回归模型都有相同数量的项(即相同数量的预测变量)。实质上,它们都有不同的模型术语是正确的。但是,当把它们放在回归表中时,我希望它们所有的模型都共享一个公式,只是为了表示

一些指示性数据

library(plyr)
d1 <- data.frame(y = rnorm(100),
             x1 = runif(100),
             x2 = runif(100),
             x3 = runif(100),
             x4 = runif(100))
我希望列表中的每个模型都具有与第一个模型相同的变量名,因此我尝试:

mod.list2 <- llply(mod.list, function(i) attr(terms(i), "variables") = list("y", "x1"))

mod.list2也许这就是您要寻找的:

使用您提供的数据帧

d1 <- data.frame(y = rnorm(100),
             x1 = rnorm(100),
             x2 = rnorm(100),
             x3 = rnorm(100),
             x4 = rnorm(100))
mod.list2 <- llply(mod.list, function(i) attr(terms(i), "variables") = list("y", "x1"))
Error in attr(terms(i), "variables") = list("y", "x1") : 
could not find function "terms<-"
d1 <- data.frame(y = rnorm(100),
             x1 = rnorm(100),
             x2 = rnorm(100),
             x3 = rnorm(100),
             x4 = rnorm(100))
names(d1) <- c("y", rep("x", times=length(d1)-1))
mod.list  <-  lapply(d1[2:ncol(d1)], function(x,y){
                    lm("y ~ x",d1)
                }, y=d1[, 'y'])
> llply(mod.list, function(x){
+   attr(terms(x), "variables")
+ })
$x
list(y, x)

$x.1
list(y, x)

$x.2
list(y, x)

$x.3
list(y, x)