On Sep 2, 2009, at 10:50 PM, Peter Meilstrup wrote:

I'm trying to massage some data from Matlab into R. The matlab file has a "struct array" which when imported into R using the R.matlab package, becomes an R list with 3+ dimensions, the first of which corresponds to the structure fields, with corresponding row names, and the second and third+ dimensions correspond to the dimensions of the original struct array (as matlab arrays always have 2+ dimensions). For example a 1x1 matlab struct array with three fields becomes:

> data
, , 1

         [,1]
trials    List,1002
beforeRun List,8
afterRun  List,8

If I load two data files, I would want to concatenate them into a single list. cbind() doesn't preserve the row names, possibly because the array has three dimensions?

No. cbind makes matrices. Arrays and matrices are required to have all elements of the same type, so any coercive function returning an array would force the elements to have the "lowest common denominator" type, which is "list" in this case.


> cbind(data1, data2)
    data1     data2
[1,] List,1002 List,479
[2,] List,8    List,8
[3,] List,8    List,8

Then I looked into abind(), which is even more puzzling: it preserves the names and dimensions correctly, but converts the entries into strings?!

Must be from a non-base package or a devel version. I get
> abind
Error: object 'abind' not found

> abind(list(data1, data2), along=2, force.array=FALSE)
, , 1

         [,1]               [,2]
trials    "0"                "1"
beforeRun "2079647.50207592" "0"
afterRun  "1"                "0"

Is there a quick way to accomplish the effect I want? I want an output that looks like:

> somebind(data1, data2, along=2)

How about:

list(data1, data2)

... or in this case, because you are starting with two list objects, you could get the same effect with:

c(data1, data2)


, , 1

         [,1]               [,2]
trials    List,1002 List,479
beforeRun List,8    List,8
afterRun  List,8    List,8

Cheers,
Peter

___________

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to