パッケージ「MuMIn」がインストールされているときに predict.gls を使用すると、エラー メッセージが表示されます。
次の (例 1) が機能します。
### EX. 1
library(nlme)
# example code from https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/predict.gls.html
fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75))
predict(fm1, newOvary)
# [1] 9.441686 13.116003 11.316793 13.116003 14.991110
# attr(,"label")
# [1] "Predicted values"
ただし、次の (Ex. 2) は、library(MuMIn) 行のみが Ex. と異なるにもかかわらず、エラー メッセージが表示されます。1:
### EX. 2
library(nlme)
library(MuMIn) # (This is the only thing different from Ex. 1)
# example code from https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/predict.gls.html
fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75))
predict(fm1, newOvary)
# Error in eval(predvars, data, env) : object 'follicles' not found
なぜこれが事実なのか誰にも分かりますか?MuMIN をインストールした状態で「predict」を使用すると非互換性があるようです
興味深いことに、predict.gls を直接呼び出す次の (例 3) は、それを機能するように復元します。
### EX. 3
library(nlme)
library(MuMIn)
# example code from https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/predict.gls.html
fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75))
nlme:::predict.gls(fm1, newOvary) # (This is the only thing different from Ex. 2)
# [1] 9.441686 13.116003 11.316793 13.116003 14.991110
# attr(,"label")
# [1] "Predicted values"
ただし、「nlme:::predict.gls」を使用することはお勧めできないことを読みました。「:::」は、直接利用できるように意図されていない内部関数にアクセスするため、「危険」になる可能性があるためです。
これが私の現在の R.version 出力です。
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 4.0
year 2017
month 04
day 21
svn rev 72570
language R
version.string R version 3.4.0 (2017-04-21) ニックネーム You Stupid Darkness
ちなみに、古いバージョンの R を使用していた古いコンピューターでは、この問題は発生しませんでした。友人に Ex を試してもらいました。2 彼のコンピューターで、エラーメッセージも生成されました。
例のエラーメッセージの理由についての洞察。2、および例の回避策に頼らずに修正する方法。3、よろしくお願いします!