如何在 R 中访问 S4 对象的插槽
Posted
技术标签:
【中文标题】如何在 R 中访问 S4 对象的插槽【英文标题】:How to access the slots of an S4 object in R 【发布时间】:2012-10-17 11:28:06 【问题描述】:我正在处理程序中的小波,我使用包wavelets
使用函数dwt
创建时间序列的DWT。这个函数返回一个dwt
类的对象,它是一个有很多槽的S4对象:W
、V
、levels
、filter
等等。
我如何将W
作为向量访问?
【问题讨论】:
我怎样才能找到插槽的名称? @shigeta 你可以使用slotNames
。另请注意,如果您有任何澄清,可以访问R Public chat room
【参考方案1】:
Ari B. Friedman 的回答很好。
但请记住,使用@
访问 S4 对象的插槽可能不是一个好习惯。请参阅此处的讨论:Is it bad practice to access S4 objects slots directly using @?
【讨论】:
【参考方案2】:@
将允许您访问 S4 对象的插槽。
所以如果你的对象被称为wave
,那么wave@W
应该会得到你的向量。
请注意,通常最好的方法是不直接访问插槽,而是通过访问器函数(例如 coefs()
而不是使用 $
或 @
挖掘系数)。但是,通常此类功能不存在,因此您必须直接访问插槽。然而,这意味着your code breaks if the internal implementation changes。
【讨论】:
还有函数slot(x,name)
以上是关于如何在 R 中访问 S4 对象的插槽的主要内容,如果未能解决你的问题,请参考以下文章