gpt4 book ai didi

R plot.gam 错误 "Error in 1:object$nsdf : argument of length 0"

转载 作者:行者123 更新时间:2023-12-04 12:35:31 25 4
gpt4 key购买 nike

我正在尝试在 R 中绘制一个 gam 对象,这是我用 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 函数的来源)。

不幸的是,我无法共享我正在使用的数据。但是,以下代码 - 直接从 Intro 的 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)

有谁知道这里发生了什么或如何解决它?

谢谢你。

最佳答案

如果您仍然收到此消息,则需要更新您的 mgcvgam打包到最新版本。对gam做了很大的改动2018 年 2 月的包裹:Could not find function plot.gam .这意味着,由 gam 拟合的 GAM包现在有“Gam”类,即使mgcv包已加载,plot不会选择mgcv::plot.gam绘制它。

但是,在 R session 中同时使用两个包仍然是不安全的。所以以下2016年提出的建议还是非常推荐的。

建议

使用这个玩具函数来检查 R session 是否可以运行 GAM 分析可能是个好主意。

GAM_status <- function () {
if (all(c("gam", "mgcv") %in% .packages())) print("Not OK")
else print("OK")
}
nsdf严格自由度数 ,专用于 mgcv 的术语.正如你提到的: mgcv是哪里 plot.gam功能来自。

问题是你有 gammgcv ,同时在您的 R session 中有两个不兼容的包。你适合你的 gam.modgam::gam ,然后用 mgcv::plot.gam 绘制模型.

请注意,使用 :: 通常是正确的将在这里失去作用。通常当两个包有一些相互屏蔽的功能时, ::是补救措施。但是,对于 mgcvgam ,这是完全不可能的。所以我的建议是,如果你使用 gam , 永远不要碰 mgcv在您的 R session 中,反之亦然。

所以,我开始一个新的 R session ,并执行以下操作,一切都很好!
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)

enter image description here

Thank you for your answer. I never actually loaded mgcv, I just assumed it was a dependency for gam. I started a fresh R session and the code you provided worked. I found that it is actually the car library that is causing the same issue.


mgcvgam不相互依赖,但由于 mgcvgam更受欢迎, 许多包依赖于 mgcv ,例如, car :
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)将同时加载这些包。

关于R plot.gam 错误 "Error in 1:object$nsdf : argument of length 0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39042064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com