[R] Does R have an equivalent for Matlab's cell array?

Jeff Newmiller jdnewmil at dcn.davis.CA.us
Sat Dec 22 20:27:43 CET 2012


Data frames are lists of vectors. You can have the vectors in a data frame be of mode list, if you wish. It would be more conventional to simply make the list and not put it into the data frame, since columns of mode list give write.table fits.

I prefer to simply keep the first form of your data and augment it with a Day column. Then if I want information on a per-day basis I use aggregate from base or ddply from the plyr package.

Although I prefer your first form (long format) there are many cases where it makes sense to put groups of data values in separate columns (wide format). You can use the reshape2 package for transforming back and forth.

You may also want to check out the Time Series task view on CRAN. Most of those classes work with data in array representation for high speed.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.

Matthijs Daelman <matthijs.daelman at gmail.com> wrote:

>Hi
>
>I have a time series of measurements: every 10 min. a value was logged.
>
>The data look like:
>
>20100914 08:01     3.74
>20100914 08:11     3.74
>20100914 08:21     3.71
>20100914 08:31     4.39
>20100914 08:41     3.74
>
>This data spans several months.
>
>I would like to group the data per day. In Matlab it is fairly easy to 
>obtain a cell array, of which the first column contains the date of
>each 
>day, and the second column contains a vector, that in its turn contains
>
>all values for the corresponding day.
>
>That looks like
>
>14-9-2010    [3.74 3.74 3.71 4.39 3.74...]
>15-9-2010    [...]
>and so on.
>
>Is it possible to create a similar data structure in in R? I was 
>thinking of a data frame, similar to the Matlab's cell array, but it 
>doesn't look like data frames can contain vectors. Something like a two
>
>dimensional list would do the trick, I believe, but does that exist?
>
>Thanks
>
>Kind regards
>
>Matthijs Daelman
>
>______________________________________________
>R-help at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide
>http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list