看起来很简单,但我不知道如何在R中编码。 我有一个带有~100个变量的数据帧(df),我想在我的第一个变量(Y)的响应和作为回归量的变量25到60之间做一个多元回归。问题是我不想写每个变量名称,如:
lm(Y~var25+var26+.......var60, data=df)
我想使用像[,25:60]这样的东西来选择一个完整的范围。我已经尝试过但不起作用:
test <- lm(Y~df[, 25:60], data=df)
summary(test)
有些想法吗?
答案 0 :(得分:5)
您可以通过仅选择这些列来subset
数据集,然后执行lm
。
lm(Y~., data=df1[c(1,25:60)])
假设您需要var25
到var60
,并且数据按列名排序
lm(Y~., data=df1[c(1,26:61)])
或另一种选择是使用paste
来创建公式
lm(paste("Y ~", paste(paste0('var', 25:60), collapse="+")), data=df1)
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)))))