Trong plot.gam()
chúng tôi lưu ý rằng plot()
được kêu gọi x$smooth[[i]]
, mà là một đối tượng của lớp:
class(x$smooth[[i]])
[1] "tprs.smooth" "mgcv.smooth"
Có là một phương pháp plot()
cho lớp "mgcv.smooth"
và nó là thế này đang được sử dụng cho những âm mưu trong trường hợp chung. ?plot.gam
đề cập rằng đây là phương pháp mặc định sử dụng cho hầu hết các smooths, nhưng có những phương pháp cụ thể đối với một số loại mịn được hỗ trợ bởi gam()
(từ Chi tiết của ?plot.gam
:
For smooth terms ‘plot.gam’ actually calls plot method functions
depending on the class of the smooth. Currently random effect and
Markov random field smooths have special methods, the rest use the
defaults described below.
Đối với một số lý do, methods()
là không tìm thấy phương pháp này, nhưng họ vẫn tồn tại:
> mgcv:::plot.mgcv.smooth
function (x, P = NULL, data = NULL, label = "", se1.mult = 1,
se2.mult = 2, partial.resids = FALSE, rug = TRUE, se = TRUE,
scale = -1, n = 100, n2 = 40, pers = FALSE, theta = 30, phi = 30,
jit = FALSE, xlab = NULL, ylab = NULL, main = NULL, ylim = NULL,
xlim = NULL, too.far = 0.1, shade = FALSE, shade.col = "gray80",
shift = 0, trans = I, by.resids = FALSE, scheme = NULL, ...)
{
....
này có thể liên quan đến một lỗi trong methods()
đó có nghĩa là plot.function
không được hiển thị n trong danh sách và R hiện tại của tôi có thể không kết hợp sửa chữa đó. Phương pháp này sẽ được hiển thị bình thường và lời khuyên chung trong các tình huống như vậy là xác định lớp đối tượng (như tôi đã trình bày ở trên) và sau đó sử dụng methods()
và các chức năng tương tự (ví dụ: showMethods()
) để xác định xem các phương pháp cụ thể có sẵn cho lớp học hay không) của đối tượng được trả về.
Chỉ cần qua một bên. . . khi chỉ định các tham số trong một hàm gọi, bạn có thể cắt bớt tên của tham số thành bất kỳ thứ gì rõ ràng. Vì vậy, nếu chỉ có một tham số _starts_ với 'P' trong chữ ký, bạn có thể chỉ định tham số đó bằng' P = '. Điều này không trả lời câu hỏi của bạn, do đó lý do nó chỉ là một bình luận. – adamleerich