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.
Converting data frame into multidimensional array
7 messages · David L Carlson, Luk Arbuckle, Richard M. Heiberger +1 more
How about?
x <- array(Titanic, dim=c(4,2,2,2)) str(x>
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:
How about?
x <- array(Titanic, dim=c(4,2,2,2)) str(x>
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.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20111021/c8f7a07a/attachment.pl>
On Fri, Oct 21, 2011 at 4:15 PM, Luk Arbuckle <luk.arbuckle at gmail.com> wrote:
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.
Try this: xtabs(Freq ~., X)
Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com
On Fri, Oct 21, 2011 at 7:04 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote:
On Fri, Oct 21, 2011 at 4:15 PM, Luk Arbuckle <luk.arbuckle at gmail.com> wrote:
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.
Try this: xtabs(Freq ~., X)
By the way, you asked for an array rather than a table but a table is an array: is.array(xtabs(Freq ~., X)) # TRUE
Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com
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:
On Fri, Oct 21, 2011 at 7:04 PM, Gabor Grothendieck <ggrothendieck at gmail.com> wrote:
On Fri, Oct 21, 2011 at 4:15 PM, Luk Arbuckle <luk.arbuckle at gmail.com> wrote:
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.
Try this: xtabs(Freq ~., X)
By the way, you asked for an array rather than a table but a table is an array: is.array(xtabs(Freq ~., X)) # TRUE -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com