我正在使用minpack.lm
包,我正在尝试为其输出添加一些功能。模型输出的str
表明它包含许多函数。我想添加一个新功能,我已经完成了,当我打印str
它看起来像这样
..$ Rmat :function ()
..$ predict :function (newdata = list(), qr = FALSE)
..$ getMoments:function ()
.. ..- attr(*, "srcref")=Class 'srcref' atomic [1:8] 115 25 115 46 25 46 589 589
.. .. .. ..- attr(*, "srcfile")=Classes 'srcfilealias', 'srcfile' <environment: 0x10a8373c0>
但是我希望我的getMoments
功能可以像str
那样打印:
..$ Rmat :function ()
..$ predict :function (newdata = list(), qr = FALSE)
..$ getMoments:function ()
我的问题是,为什么在列表中添加新功能会使str
的打印输出看起来不同?我认为这可能与在不同的环境中创建有关,但是将我的函数环境改变为与模型输出中的环境相同也无济于事。
作为可重现的示例,请使用minpack.lm
包中的示例:
DNase1 <- subset(DNase, Run == 1)
fm1DNase1 <- nlsLM(density ~ SSlogis(log(conc), Asym, xmid, scal), DNase1)
fm1DNase1$m$myFun <- function() 2
str(fm1DNase1)
List of 5
$ m :List of 17
..$ resid :function ()
..$ fitted :function ()
...
..$ myFun :function ()
.. ..- attr(*, "srcref")=Class 'srcref' atomic [1:8] 1 22 1 33 22 33 1 1
.. .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x10be3e158>
..- attr(*, "class")= chr "nlsModel"