From hadley at rice.edu  Thu Jan  5 00:31:56 2012
From: hadley at rice.edu (Hadley Wickham)
Date: Wed, 4 Jan 2012 17:31:56 -0600
Subject: [Rd] returning information from functions via attributes rather
 than return list
In-Reply-To: <4F04C35E.1090401@gmail.com>
References: <CAErODj8GiAnVbirM5JtdFAOBqPrqa+XcEagy5RYRhofdqrQ+QA@mail.gmail.com>
	<B12E72A9-7A9F-467E-822C-737561B3B06D@r-project.org>
	<CAErODj_-HYuF-hamKQcr-p0zg-sqPmoargu88s+oGMaLsJwWDg@mail.gmail.com>
	<4F04C35E.1090401@gmail.com>
Message-ID: <CABdHhvFRzfVHGjCdL58YDADupj9vCX0Of3u2gvqJEx9OzdWL8g@mail.gmail.com>

> Attributes are slightly harder to work with, so Simon's recommendation is
> good advice. ?But in cases where you want other functions to work with the
> result, and the result isn't a named list with a class, then attributes are
> a convenient way to go.
>
> The only two snags I can think of are 1, that R uses a few attributes for
> its own purposes (e.g. "names", "dim" and "dimnames") and if you use those
> attribute names for something incompatible you'll probably run into all
> sorts of problems and 2, that S4 objects use attributes internally. ?I
> wouldn't recommend using attributes on an S4 object.

Attributes are also useful when you're extending a atomic vector, and
want to be able to store objects of your new class inside data frames
etc.

Hadley

-- 
Assistant Professor / Dobelman Family Junior Chair
Department of Statistics / Rice University
http://had.co.nz/



[Rd] returning information from functions via attributes rather than return list
Hadley Wickham