[Rd] Why change data type when dropping to one-dimension?

Thomas Lumley tlumley at u.washington.edu
Fri May 29 23:54:32 CEST 2009

On Fri, 29 May 2009, Jason Vertrees wrote:

> My question is: why does the paradigm of changing the type of a 1D
> return value to an unlisted array exist?  This introduces boundary
> conditions where none need exist, thus making the coding harder and
> confusing.
> For example, consider:
>  > d = data.frame(a=rnorm(10), b=rnorm(10));
>  > typeof(d);			# OK;
>  > typeof(d[,1]);  		# Unexpected;
>  > typeof(d[,1,drop=F]);	# Oh, now I see.

It does make it harder for programmers, but it makes it easier for non-programmers.  In particular, it is convenient to be able to do d[1,1] to extract a number from a matrix, rather than having to explicitly coerce the result to stop it being a matrix.

At least the last two times this was discussed, there ended up being a reasonable level of agreement that if someone's life had to be made harder the programmers were better able to cope and that dropping dimensions was preferable.


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

More information about the R-devel mailing list