它看起来很简单,但是我不知道如何在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)
有想法吗?
您可以subset通过仅选择那些列来选择数据集,然后执行lm。
lm(Y~., data=df1[c(1,25:60)])
Run Code Online (Sandbox Code Playgroud)
假设,如果需要var25,var60并且数据是否按列名排序
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)