You are on the right track, but you don’t need the `@formula`

call when constructing names programmatically.

```
julia> df = DataFrame(y = rand(100), x1 = rand(100), x2 = rand(100));
julia> lm(term(:y) ~ sum(term.(Symbol.(names(df, Not(:y))))), df)
StatsModels.TableRegressionModel{LinearModel{GLM.LmResp{Array{Float64,1}},GLM.DensePredChol{Float64,LinearAlgebra.Cholesky{Float64,Array{Float64,2}}}},Array{Float64,2}}
y ~ 1 + x1 + x2
Coefficients:
───────────────────────────────────────────────────────────────────────────────
Estimate Std. Error t value Pr(>|t|) Lower 95% Upper 95%
───────────────────────────────────────────────────────────────────────────────
(Intercept) 0.64731 0.0719799 8.99292 <1e-13 0.504449 0.79017
x1 0.0392958 0.0932668 0.421327 0.6744 -0.145813 0.224405
x2 -0.259494 0.100676 -2.57752 0.0115 -0.459308 -0.0596804
───────────────────────────────────────────────────────────────────────────────
```

This is definitely not easy syntax. But overall the system is a bit more flexible than R, where using the *rest* of the names is easy but using a specific list of names for independent variables is very hard.