R:具有特定变量范围的多元线性回归

Dar*_* PC 2 r lm

它看起来很简单,但是我不知道如何在R中进行编码。我有一个带有约100个变量的数据框(df),并且我想在响应中进行多元回归,即我的第一个变量(Y)和变量25至60作为回归变量。问题是我不想像这样写每个变量名:

lm(Y~var25+var26+.......var60, data=df)
Run Code Online (Sandbox Code Playgroud)

我想使用[,​​25:60]之类的东西来选择一个完整的范围。我已经尝试过了,但是没有用:

test <- lm(Y~df[, 25:60], data=df)
summary(test)
Run Code Online (Sandbox Code Playgroud)

有想法吗?

akr*_*run 5

您可以subset通过仅选择那些列来选择数据集,然后执行lm

lm(Y~., data=df1[c(1,25:60)])
Run Code Online (Sandbox Code Playgroud)

假设,如果需要var25var60并且数据是否按列名排序

lm(Y~., data=df1[c(1,26:61)])   
Run Code Online (Sandbox Code Playgroud)

或另一种选择是使用paste创建公式

lm(paste("Y ~", paste(paste0('var', 25:60), collapse="+")), data=df1)
Run Code Online (Sandbox Code Playgroud)

数据

set.seed(24)
df1 <- as.data.frame(matrix(sample(1:80, 20*101, replace=TRUE),
   ncol=101, dimnames=list(NULL, c('Y', paste0('var', 1:100)))))
Run Code Online (Sandbox Code Playgroud)