array2df

Share:

Description

array2df: Convert multidimensional array into matrix or data.frame The "wide-format" array is converted into a "long-format" matrix or data.frame.

Usage

1
2
array2df(x, levels, matrix = FALSE, label.x = deparse(substitute(x)),
  na.rm = FALSE)

Arguments

x

array

levels

list with the levels for the dimensions of x.

If levels[[i]] is NULL no column is produced for this factor.

If levels[[i]] is NA, the result column is a numeric with range from 1 to dim (x)[i]

If levels[[i]] is TRUE, the levels are taken from the dimnames.

names(levels) yield the resulting column names.

matrix

If TRUE, a numeric matrix rather than a data.frame is returned.

label.x

Name for the column containing the x values.

na.rm

should rows where the value of x is NA be removed?

Details

If the resulting data.frame is too large to fit in memory, a matrix might help.

The main benefit of this function is that it uses matrices as long as possible. This can give large advantages in terms of memory consumption.

Value

A data.frame or matrix with prod (dim (x)) rows and length (dim (x)) + 1 columns.

Author(s)

Claudia Beleites

See Also

stack

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
a <- arrayhelpers:::a
a
array2df (a)
array2df (a, matrix = TRUE)

array2df (a, levels = list(NULL, x = NA, c = NULL), label.x = "value")

array2df (a, levels = list(NULL, x = TRUE, c = c ("foo", "bar")), label.x = "value")

summary (array2df (a,
                   levels = list(NULL, x = NA, c = c ("foo", "bar")),
                   label.x = "value"))

summary (array2df (a,
                   levels = list(NULL, x = NA, c = c ("foo", "bar")),
                   label.x = "value",
                   matrix = TRUE))