-1
私はかなり新しく、関数を書くのに苦労しています。私はGAMに合ったものを作ろうとしています。線形モデルの例が見つかりました。しかし、GAMに同じ構造を使用しようとするとエラーが発生します。is.data.frame(data)のエラー:オブジェクト 'data =' 'が見つかりません
線型モデル:
library(mgcv)
library(ggplot2)
theme_set(theme_bw())
set.seed(100)
dd <- data.frame(x=1:100,y=round(rnorm(100,mean=100),1), z=round(runif(100,1,4),1))
lm(y~x, weights=z, data=dd)$call
lm(formula = y ~ x, data = dd, weights = z)
f2 <- function(f,w,d){
do.call("lm", list(formula=as.formula(f), weights=as.name(w), data=as.name(d)))
}
f2("y~x", "z", "dd")$call
lm(formula = y ~ x, data = dd, weights = z)
とGAMバージョン
set.seed(100)
dd <- data.frame(x=1:100,y=round(rnorm(100,mean=100),1))
gam(y ~ s(x, k=64, bs='ad'), data = dd, method = 'REML', select = 'TRUE')$call
gam(formula = y ~ s(x, k=64, bs='ad'), data = dd, method = 'REML', select = 'TRUE')
f2 <- function(f,m,s,d){
do.call("gam", list(formula=as.formula(f),method=as.name(m),select=as.name(s),data=as.name(d)))
}
f2("y ~ s(x, k=64, bs='ad')", "method = 'REML'", "select = 'TRUE'", "data = dd")$call
# Error in is.data.frame(data) : object 'data = dd' not found occurs
gam(formula = y ~ s(x, k = 64, bs = "ad"), data = dd)
WHどのようなパッケージですか? – PoGibas
なぜ、do.call( "gam"、list(formula = as.formula(f)、method = m、select = s、data = d)) 'と' f2( "y〜s(x、k = 64、bs = 'ad') "、 'REML'、TRUE、dd)'? – r2evans
申し訳ありません、パッケージを追加しました。 GAMは一般化された追加モデルです。私の場合は、散布図があり、GAMはy値を平滑化するので、xとyの関係は非線形です。 –