[R] r data structures
David Winsemius
dwinsemius at comcast.net
Thu Aug 16 23:31:48 CEST 2012
On Aug 16, 2012, at 1:50 PM, Schumacher, Jay S wrote:
>
> are these correct/accurate/sensible statements:
>
> a vector is a one dimensional object.
> a matrix is a two dimensional object.
>
> a list is a one dimensional object.
>
> i'm working from this web page: http://www.agr.kuleuven.ac.be/vakken/statisticsbyR/someDataStructures.htm
You can have as many personal representations of R structures as
you want. If you are intent on communication with other useRs, I think
you should restrict the use of "dimension" to objects that return a
non-NULL value from dim(). And I think one should use 'length' for the
dimension-like aspect for atomic vectors and lists. (I originally used
the word "attribute", but that is a specific function and applied to
such structures would not return a "length"-value.) Dimensions is R
can have other attributes such as names that often need to be accessed
or manipulated
One further source of confusion is length() applied to matrices or
dataframes. It will return a value from matrices that is nrow()*ncol()
and from dataframes (which are really lists under the hood) a value
that is ncol(). The latter value is rather different than my naive
expectation, which was that a dataframe's "length" would be the number
of cases or rows.
That webpage obviously has its own definition of dimension (and
it's perfectly free to make up its own terms) but it is not one that
is in accord with "An Introduction to R" or with typical R discourse.
--
David.
> -----------------------------------------------------------------
>
>
> On Aug 16, 2012, at 11:49 AM, Schumacher, Jay S wrote:
>
>>
>>
>> hi,
>> i'm trying to understand r data structures. i see that vectors,
>> matrix, factors and arrays have a "dimension."
>> there seems to be no mention of dimensionality anywhere for lists
>> or dataframes. can i consider lists and frames to be of fixed
>> dimension 2?
>
> About half of what you have deduced is wrong. Matrices, arrays, and
> dataframes do have dimensions, at least in technical R parlance,
> namely they have an attribute which can be queried with dim(). By
> definition matrices and dataframes have 2 dimensions. Arrays and
> matrices can be redimensioned, but dataframes cannot.
>
> Factors, lists, and atomic vectors do not have "dimensions", but they
> do have "lengths". An appropriately structured list (one with vectors
> all the same length) can be coerced to a dataframe with
> as.data.frame().
>
> --
>
> David Winsemius, MD
> Alameda, CA, USA
>
David Winsemius, MD
Alameda, CA, USA
More information about the R-help
mailing list