[R] Qs re writing/reading arrays, dataframes

David Winsemius dwinsemius at comcast.net
Mon Dec 13 19:40:51 CET 2010


On Dec 13, 2010, at 12:20 PM, Roy Shimizu wrote:

> Hi!  I'm just getting started with R (and with the analysis of large
> datasets in general).  I have several beginner-level questions whose
> answers I have not been able to find, and was hoping one of you would
> be kind enough to throw me a cluebrick or two.
>
> I have a 6-dimensional numeric array (which I'll call myarray) that is
> "fully named".  By this I mean that non-NULL dimnames are assigned to
> all dimensions, and, furthermore, the dimensions themselves are named.
> In fact, I created the dimnames attribute with an expression of the
> form:
>
> dimnames(myarray) <- list(line=c(...), "compound:name"=c(...),
> "compound:concentration"=c(...), time=c(...), replicate=c(...),
> "antibody:name"=c(...))
>
> ...where the values passed for attributes line, "compound:name", ..,
> "antibody:name" are all vectors with mode "character".
>
> Question 1: I'd like to save this array in a file having an ASCII
> (i.e. non-binary) format that can be easily read by R.

?dump


> How can I
> format this file so that not only the dimnames are specified, but also
> the names of the dimensions ("line", "compound:name", ...,
> "antibody:name") themselves?  I thought that the output of write.table
> would give me a clue, but in fact this output does not mention the
> dimension names at all.
>
> Question 2: In fact, I don't think that write.table is the right
> function to use in this case, because it seems to be designed for
> dataframes rather than arrays.  When write.table coerces myarray into
> a data.frame, dimensions 2-6 get collapsed into one.  Hence, when the
> data is read back into R, it has the wrong dimensions.  What's the
> best way to convert a "fully named" array like myarray into a
> data.frame, so as to preserve all the array's dimnames and dimension
> names?
>
> Question 3: I've come across several times the advice to the effect
> that data.frames are usually the best choice of representation for
> such data.  In my case, however, I don't see what I would be gaining
> by casting my array into a data.frame.  In what kind of situation is
> it advantageous to work with a data.frame rather than an array?

When you are going to do regression.

>
> Thanks in advance!
>

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list