[Rd] often unnecessary duplicate in sapply / as.vector

Thomas Lumley tlumley at u.washington.edu
Sat Jul 8 02:04:40 CEST 2006

On Fri, 7 Jul 2006, Martin Morgan wrote:

> sapply calls lapply as
>    answer <- lapply(as.list(X), FUN, ...)
> which, when X is a list, causes X to be duplicated unnecessarily. The
> coercion is unnecessary for other mode(X) because in lapply we have
>    if (!is.list(X)) X <- as.list(X)

That looks reasonable.

> More generally, perhaps as.vector might not duplicate when mode(x) == mode ?

This isn't a trivial change, because  mode(x)==mode does not guarantee 
that as.vector(x, mode) has no effect.  For example, with mode="numeric" it 
removes attributes.


Thomas Lumley			Assoc. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle

More information about the R-devel mailing list