zaire90
zaire90

Reputation: 743

How to access the slots of an S4 object in R

I'm working with wavelets on a program and I'm used the package wavelets to create the DWT of a time series using the function dwt. This function returns an object of class dwt, which is a S4 object with many slots: W, V, levels, filter, and so on.

How can I access the W's as a vector?

Upvotes: 40

Views: 30298

Answers (2)

Xiaorui Zhu
Xiaorui Zhu

Reputation: 191

Ari B. Friedman's answer is good.

But please keep in mind that using @ to access the slots of an S4 object may not be a good practice. See the discuss here: Is it bad practice to access S4 objects slots directly using @?

Upvotes: 2

Ari B. Friedman
Ari B. Friedman

Reputation: 72731

@ will let you access the slots of an S4 object.

So if your object is called wave, then wave@W should get you your vector.

Note that often the best way to do this is to not access the slot directly but rather through an accessor function (e.g. coefs() rather than digging out the coefficients with $ or @). However, often such functions do not exist so you have to access the slots directly. This will mean that your code breaks if the internal implementation changes, however.

Upvotes: 45

Related Questions