2016-08-19 17 views
5

私はgamパッケージで作ったRでgamオブジェクトをプロットしようとしています。 Error in 1:object$nsdf : argument of length 0 when using plot.gamに報告されたのと同じエラーが表示されます。しかし、そこにある解決策は、最新のバージョンに更新されている(私は思う)、私のために働いていない。私はR 3.3.1、gam 1.12、およびmgcv 1.8.12(mgcvはplot.gam関数の由来です)を実行しています。

残念ながら、私は現在作業しているデータを共有できません。しかし、次のコードはイントロのp.294から直接引き出されました。 Rの統計学習に - エラーを再現する:

library(gam) 
library(ISLR) # contains the Wage dataset used here 
gam.mod <- gam(wage ~ s(year, 4) + s(age, 5) + education, data = Wage) 
plot(gam.mod) 

ここで何が起こっているのか、それを修正する方法は誰にも分かりますか?

ありがとうございます。

答えて

4

提案

それはRセッションは、GAM分析を実行するためにOKであるかどうかを確認するために、このおもちゃの機能を持っているのは良い考えかもしれません。

GAM_status <- function() { 
    if (all(c("gam", "mgcv") %in% .packages())) print("Not OK") 
    else print("OK") 
    } 

nsdf自由、専らmgcvで使用される用語の厳密度の数です。あなたが言及したように:plot.gam関数の由来はmgcvです。

問題はgammgcvで、同時に2つの互換性のないパッケージがRセッションにあることです。 gam.modgam::gamに合わせてくださいが、モデルをmgcv::plot.gamとプロットしてください。

::を使用して通常行われる処理はここで無効になります。通常、2つのパッケージにいくつかのマスクされた機能がある場合、::が救済策です。しかし、mgcvgamの場合、これは完全に不可能です。だから私の提案は、あなたがgamを使っているならば、Rセッションでmgcvに触れないでください。

私は新鮮なRセッションを開始し、以下のことを実行します。


enter image description here

library(gam) 
library(ISLR) # contains the Wage dataset used here 
gam.mod <- gam(wage ~ s(year, 4) + s(age, 5) + education, data = Wage) 
par(mfrow = c(2,2)); plot(gam.mod) 

は、あなたの答えをいただき、ありがとうございます。私は実際には mgcvをロードしていない、私はそれが gamの依存関係であると仮定した。私は新鮮なRセッションを開始し、あなたが提供したコードが働きました。私はそれが実際に同じ問題を引き起こしている carライブラリであることが判明しました。

mgcvgamはお互いに依存しませんが、mgcvgamよりも人気があるため、多くのパッケージはcar、例えば、mgcvに依存している:「輸入」フィールド

car: Companion to Applied Regression 

Functions and Datasets to Accompany J. Fox and S. Weisberg, An R Companion to 
Applied Regression, Second Edition, Sage, 2011. 
Version: 2.1-3 
Depends: R (≥ 3.2.0) 
Imports: MASS, mgcv, nnet, pbkrtest (≥ 0.4-4), quantreg, grDevices, utils, 
      stats, graphics 

注意を、library(car)はこれらのパッケージを同時に読み込みます。

+0

ありがとうございました。私は実際にmgcvをロードしたことはありません、私はそれがgamの依存関係であると仮定しました。私は新鮮なRセッションを開始し、あなたが提供したコードが働きました。私はそれが実際に同じ問題を引き起こしている ''カー ''のライブラリであることを発見しました。 '' '::' '表記法は、' 'gam'''と' '' 'car''の間の問題を解決しません。 –

関連する問題