Skip to content

Converting data frame into multidimensional array

7 messages · David L Carlson, Luk Arbuckle, Richard M. Heiberger +1 more

#
Consider the following data frame

X <- data.frame(Titanic)

Does anyone know of an easy way to convert X into a multidimensional
array?  Example that doesn't work

X <- as.array(X, dim=c(4,2,2,2))

To do what I need, X needs to be converted into an array of dimensions
c(4,2,2,2) in this case, not a table.

Thanks in advance.
#
How about?
num [1:4, 1:2, 1:2, 1:2] 0 0 35 0 0 0 17 0 118 154 ...

----------------------------------------------
David L Carlson
Associate Professor of Anthropology
Texas A&M University
College Station, TX 77843-4352


-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of Luk Arbuckle
Sent: Friday, October 21, 2011 3:16 PM
To: r-help at r-project.org
Subject: [R] Converting data frame into multidimensional array

Consider the following data frame

X <- data.frame(Titanic)

Does anyone know of an easy way to convert X into a multidimensional
array?  Example that doesn't work

X <- as.array(X, dim=c(4,2,2,2))

To do what I need, X needs to be converted into an array of dimensions
c(4,2,2,2) in this case, not a table.

Thanks in advance.

______________________________________________
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.
#
I need something that will work with any, possibly very large, data
frame.  This dataset is only a very small example.
On 2011-10-21, at 17:31, David L Carlson <dcarlson at tamu.edu> wrote:

            
#
On Fri, Oct 21, 2011 at 4:15 PM, Luk Arbuckle <luk.arbuckle at gmail.com> wrote:
Try this:

xtabs(Freq ~., X)
#
On Fri, Oct 21, 2011 at 7:04 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
By the way, you asked for an array rather than a table but a table is an array:

is.array(xtabs(Freq ~., X)) # TRUE
#
Thank-you for the replies.  I would say that the function xtabs() is
the simplest method. And thanks for pointing out that a table is also
an array, as I clearly wasn't aware of that.
On 2011-10-21, at 19:07, Gabor Grothendieck <ggrothendieck at gmail.com> wrote: