Datatable 如何使用gam()拟合广义相加模型,其中所有列始终用作预测值(模型拟合中没有硬编码部分)

Datatable 如何使用gam()拟合广义相加模型,其中所有列始终用作预测值(模型拟合中没有硬编码部分),datatable,forecasting,gam,forecast,columnname,Datatable,Forecasting,Gam,Forecast,Columnname,我在R中有一个列车数据表,它总是有不同的列,例如,现在数据表有以下列名: library(mgcv) dt.train <- c("DE", "DEWind", "DESolar", "DEConsumption", "DETemperature", "DENuclear", "DELignite") 列名目前是硬编码的

我在
R
中有一个列车数据表,它总是有不同的列,例如,现在数据表有以下列名:

library(mgcv)
dt.train <- c("DE", "DEWind", "DESolar", "DEConsumption", "DETemperature", 
              "DENuclear", "DELignite")
列名目前是硬编码的,但我不想一直更改它,我想让程序识别有多少列,并使模型与现有列相匹配。因此,我想要这样的东西(它适用于
stats::lm()
stats::glm()
):


fitModel出于统计原因,我不建议您这样做,但是

nms
fitModel <- mgcv::gam(DE ~ s(DEWind)+s(DESolar)+s(DEConsumption)+s(DETemperature)+
                           s(DENuclear)+s(DELignite), 
                      data = dt.train)
fitModel <- mgcv::gam(DE ~ .-1, data = dt.train)
> rhs
[1] "s(DEWind) + s(DESolar) + s(DEConsumption) + s(DETemperature) + s(DENuclear) + s(DELignite)"
> fml
[1] "DE ~ s(DEWind) + s(DESolar) + s(DEConsumption) + s(DETemperature) + s(DENuclear) + s(DELignite)"
> fml
DE ~ s(DEWind) + s(DESolar) + s(DEConsumption) + s(DETemperature) + 
    s(DENuclear) + s(DELignite)