[R] two questions for R beginners
Duncan Murdoch
murdoch at stats.uwo.ca
Mon Mar 1 12:37:30 CET 2010
Karl Ove Hufthammer wrote:
> On Mon, 1 Mar 2010 11:02:59 +0100 Karl Ove Hufthammer <karl at huftis.org>
> wrote:
>
>>> * What were your biggest misconceptions or
>>> stumbling blocks to getting up and running
>>> with R?
>>>
>> Also I found it quite confusing that
>>
>
> One more thing that still trips me up sometimes. '$' works on data
> frames but not on matrices (with dimnames/colnames). Even though the two
> objects *look* exactly the same, '$' on one of them works while '$' on
> the other gives a *very* confusing error message. Example:
>
> d=head(iris[1:4])
> d2=as.matrix(d)
>
> d
> d2
>
> d$Sepal.Width
> d2$Sepal.Width
>
> Some functions output matrices where you would expect them to output
> data frames, and then this problem occurs. (Is there a reason why '$'
> could/should not be made to 'work' on matrices too?)
>
>
The reason for the difference is that data.frames are lists organized
into columns (so the $ handling comes from the list, where it means
"extract the component") whereas a matrix is a single vector displayed
in columns.
Of course, the problem is that a beginner only knows that they both look
the same. But I think the idea of a list is so fundamental to R that it
needs to be something learned pretty early, so I'd rather not blur the
distinction between dataframes and matrices.
Duncan Murdoch
More information about the R-help
mailing list