我與寫調用使用get()
爲什麼無法在gamm中找到對象,但它在lm中工作?
假設我有這個數據幀的變量的R功能掙扎:
mydat = data.frame(y = rnorm(100),
x = rnorm(100),
day = sample(90:260, 100, replace = T),
r1 = sample(seq(2008,2015,1), 100, replace = T),
r2 = sample(letters, 100, replace = T),
r3 = sample(letters, 100, replace = T))
,我想編寫一個返回GAMM模型的摘要函數,例如像這樣
gamm_summary = function(data, response = "y"){
require(mgcv)
gamm_model = gamm(get(response) ~ s(day),
random = list(r1=~1, r2=~1, r3 =~1), data = data, method = "REML")
summary(gamm_model$gam)
}
gamm_summary(mydat)
爲什麼這給我的錯誤:
項Error in get(response) : object 'response' not found
但以下幾項工作:
lm_summary = function(data, response = "y") {
lm_model = lm(get(response) ~ x, data = data)
summary(lm_model)
}
lm_summary(mydat)
問:爲什麼無法得到我GAMM功能工作,我怎麼可以重寫,以便它能發揮的作用?
嘗試使用此功能'?reconulate' –