library("broadcast")
<- array(c(as.list(1:24), as.list(letters)), 4:2)
x dimnames(x) <- list(
1:4],
letters[1:3],
LETTERS[1:2]
month.abb[
)print(x)
## , , Jan
##
## A B C
## a 1 5 9
## b 2 6 10
## c 3 7 11
## d 4 8 12
##
## , , Feb
##
## A B C
## a 13 17 21
## b 14 18 22
## c 15 19 23
## d 16 20 24
# cast `x` from in to out, and distribute names:
<- cast_dim2hier(x, distr.names = TRUE)
x2 head(x2, n = 2)
## $Jan
## $Jan$A
## $Jan$A$a
## [1] 1
##
## $Jan$A$b
## [1] 2
##
## $Jan$A$c
## [1] 3
##
## $Jan$A$d
## [1] 4
##
##
## $Jan$B
## $Jan$B$a
## [1] 5
##
## $Jan$B$b
## [1] 6
##
## $Jan$B$c
## [1] 7
##
## $Jan$B$d
## [1] 8
##
##
## $Jan$C
## $Jan$C$a
## [1] 9
##
## $Jan$C$b
## [1] 10
##
## $Jan$C$c
## [1] 11
##
## $Jan$C$d
## [1] 12
##
##
##
## $Feb
## $Feb$A
## $Feb$A$a
## [1] 13
##
## $Feb$A$b
## [1] 14
##
## $Feb$A$c
## [1] 15
##
## $Feb$A$d
## [1] 16
##
##
## $Feb$B
## $Feb$B$a
## [1] 17
##
## $Feb$B$b
## [1] 18
##
## $Feb$B$c
## [1] 19
##
## $Feb$B$d
## [1] 20
##
##
## $Feb$C
## $Feb$C$a
## [1] 21
##
## $Feb$C$b
## [1] 22
##
## $Feb$C$c
## [1] 23
##
## $Feb$C$d
## [1] 24
# cast `x` from out to in, and distribute names:
<- cast_dim2hier(x, in2out = FALSE, distr.names = TRUE)
x2 head(x2, n = 2)
## $a
## $a$A
## $a$A$Jan
## [1] 1
##
## $a$A$Feb
## [1] 13
##
##
## $a$B
## $a$B$Jan
## [1] 5
##
## $a$B$Feb
## [1] 17
##
##
## $a$C
## $a$C$Jan
## [1] 9
##
## $a$C$Feb
## [1] 21
##
##
##
## $b
## $b$A
## $b$A$Jan
## [1] 2
##
## $b$A$Feb
## [1] 14
##
##
## $b$B
## $b$B$Jan
## [1] 6
##
## $b$B$Feb
## [1] 18
##
##
## $b$C
## $b$C$Jan
## [1] 10
##
## $b$C$Feb
## [1] 22
cast_dim2hier
Cast Dimensional List into Hierarchical List
Description
cast_dim2hier()
casts a dimensional list (i.e. an array of type list
) into a hierarchical/nested list.
Usage
cast_dim2hier(x, ...)
## Default S3 method:
cast_dim2hier(x, in2out = TRUE, distr.names = FALSE, ...)
Arguments
x
|
an array of type list .
|
…
|
further arguments passed to or from methods. |
in2out
|
see broadcast_casting. |
distr.names
|
TRUE or FALSE , indicating if dimnames from x should be distributed over the nested elements of the output. See examples section for demonstration. |
Value
A nested list.