微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何访问R中作为元素存储在列表中的函数?

如何解决如何访问R中作为元素存储在列表中的函数?

我正在使用带有返回大nlsList(长度为10的列表)的函数的R包,这10个列表元素中的每个元素本身都是长度为5的列表,其中包括长度为16的列表。级别列表的长度为16,是功能列表。我假设它们是可运行的函数,所以我的问题是:如何执行它们?

例如,如果我通过名称访问元素,这就是我得到的:

> tnr.fitL[["2016:CT"]][["m"]]["fitted"]
$fitted
function () 
form
<bytecode: 0x0000000020cb5548>
<environment: 0x0000000020cbade0>

这看起来像关于函数的(简单的)信息,但是我想做的是运行嵌入式的“拟合”函数本身,我希望可以为我提供模型拟合一些数据的估计值,为此这个nlsList对象就是输出

如果有兴趣,生成nlsList对象的是nlraa软件包0.73版的nlsLMList函数

谢谢。

解决方法

您必须添加()才能执行函数调用。即tnr.fitL[["2016:CT"]][["m"]]["fitted"]()

,

好的,我发现您使用nlsList对象作为参数来调用嵌入式函数。因此,例如,对于“拟合”公式,它称为:

> fitted(tnr.fitL)
  2016:CT   2016:CT   2016:CT   2016:CT   2016:CT   2016:CT   2016:CT   2016:CT   2016:CT 
 4.320019  4.320019  9.629277  9.629277  9.629277  9.629277 12.464655 12.464655 12.464655 

这似乎是R中的标准“拟合”函数(在{stats}中),使用与拟合值相关的模型拟合对象(在这种情况下为nlsList对象)调用。

所以我猜测这是如何执行List对象中嵌入功能的标准功能。在这种情况下,我不认为这16个嵌入式函数(包括“ fitted”)是对象的自定义函数,而是充当可以在对象上运行哪些标准R函数的索引和激活点。只是一个猜测。如果有任何读者知道此功能在R中的工作位置,请发布它。我找不到任何东西。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。