在下面的最小示例中,我尝试vars在回归公式中使用字符串的值.但是,我只能将变量名称字符串("v2 + v3 + v4")传递给公式,而不是该字符串的实际含义(例如,"v2"是dat $ v2).
我知道有更好的方法来运行回归(例如lm(v1 ~ v2 + v3 + v4, data=dat)).我的情况更复杂,我想弄清楚如何在公式中使用字符串.有什么想法吗?
更新以下代码
# minimal example
# create data frame
v1 <- rnorm(10)
v2 <- sample(c(0,1), 10, replace=TRUE)
v3 <- rnorm(10)
v4 <- rnorm(10)
dat <- cbind(v1, v2, v3, v4)
dat <- as.data.frame(dat)
# create objects of column names
c.2 <- colnames(dat)[2]
c.3 <- colnames(dat)[3]
c.4 <- colnames(dat)[4]
# shortcut to get to the type of object my full code produces
vars <- …Run Code Online (Sandbox Code Playgroud) 我想弄清楚如何创建一个循环或使用其中一个应用函数来获取数据集中每个变量对因变量的单个1:1回归信息.
让我们说我正在使用mtcars.我将如何编写R代码来获取数据框中的每个变量并将其针对MPG进行回归?
更好的是获得每个自变量的摘要,并具有某种名称赋值,例如x1 =,x2 =等
summary(lm(mpg~eachvar,data=mtcars))
Run Code Online (Sandbox Code Playgroud) 假设我有这样的数据:
n=100
df<-data.frame(y=rnorm(n,2,3),
x1=rbinom(n,1,0.3),
x2=rbinom(n,10, 0.5),
x3=rnorm(n, 50, 20),
x4=rnorm(n, 3, 2))
Run Code Online (Sandbox Code Playgroud)
我有一个基本模型y=x1+x2:
mod0<-as.formula(y~x1+x2)
lm0<-lm(mod0, data=df)
Run Code Online (Sandbox Code Playgroud)
我想要的是使用 x1 与 x3 和 x4 之间的交互项来更新 mod0,使得mod1<-y~x1+x2+x1*x3和mod2<-y~x1+x2+x1*x4。由于我有一堆变量需要循环,我想知道这可能是最好的方法。