Skip to content
Prev 367245 / 398506 Next

Make sure a data frame has been "fun through" a function

On Mon, 20 Feb 2017, stephen sefick wrote:

            
Depends on exactly what you mean by `invisible' and `side effects'.

You can do this (but I am not necessarily recommending this):
+ class(x)<- c("more.stuff",class(x))
+ attr(x,"stuff")<- list(...)
+ x}
And printing and model functions will be unaffected:
a b
1 1 a
2 2 b
3 3 c
$comment
[1] "wow"

$length
[1] "3 rows"
[1] "Component ?call?: target, current do not match when deparsed"
And if you need some generics to take account of the "stuff" attribute, 
you can write the methods to do that.

---

Another solution is to put your data.framne in a package and then have 
other objects hold the 'stuff' stuff. Once your package is loaded or 
imported, the user will have access to the data in a way that might be 
said to be `invisible' in ordinary usage.

---

But seriously, you should say *why* you want to do this. There are 
probably excellent solutions that do not involve directly altering the 
data.frame and may not involve putting together a package.

HTH,

Chuck