2015-02-23 60 views
0

我試圖運行gam作爲函數a和b,數據集中變量的gam的平滑樣條迴歸。但是,當我運行以下代碼時,出現以下錯誤。平滑樣條迴歸的gam函數中的錯誤

> autogam_axb <- gam(data$y~s(data$a,data$b)) 
Error in eval(expr, envir, enclos) : object 'a' not found 

任何想法我做錯了什麼?

+3

您必須使用'gam(y〜s(a,b),data = data)' – DatamineR 2015-02-23 17:54:47

+0

@RStudent - 工作。謝謝! – shannimcg 2015-02-23 17:56:42

回答

2

您需要將模型規範與數據的位置分開。前者是通過公式中指定,而data參數是用來告訴gam關於後者:

autogam_axb <- gam(y ~ s(a, b), data = data) 

這有兩個目的:

  1. 模型的規範是明確的,不與混亂data$,這使得它更容易看到它所裝什麼,並且
  2. 您明確了要找到適合模型所需的變量的位置,但是您可以在函數調用的單個位置執行此操作。