short formula call for many variables when buildin

2019-01-06 12:36发布

This question already has an answer here:

I am trying to build a regression model with lm(...). My dataset has lots of features(>50). I do not want to write my code as lm(output~feature1+feature2+feature3+...+feature70). I was wondering what is the short hand notation to write this code.

标签: r formula
2条回答
不美不萌又怎样
2楼-- · 2019-01-06 13:11

Could also try things like:

lm(output ~ myData[,2:71], data=myData)

Assuming output is the first column feature1:feature70 are the next 70 columns.

Or

features <- paste("feature",1:70, sep="")
lm(output ~ myData[,features], data=myData)

Is probably smarter as it doesn't matter where in amongst your data the columns are.

Might cause issues if there's row's removed for NA's though...

查看更多
你好瞎i
3楼-- · 2019-01-06 13:15

You can use . as described in the help page for formula. The . stands for "all columns not otherwise in the formula".

lm(output ~ ., data = myData).

Alternatively, construct the formula manually with paste. This example is from the as.formula() help page:

xnam <- paste("x", 1:25, sep="")
(fmla <- as.formula(paste("y ~ ", paste(xnam, collapse= "+"))))

You can then insert this object into regression function: lm(fmla, data = myData).

查看更多
登录 后发表回答