# Generate an array to test with
dn <- list(
length = c("50:60", "60:70", "70:Inf"),
age = paste0("age", 0:5),
time = paste0(rep(1990:1996, each = 2), c("-01", "-02")) )
ar <- array(
seq_len(prod(sapply(dn, length))),
dim = sapply(dn, length),
dimnames = dn)
ar[,,"1994-02", drop = FALSE]
g3_array_plot(ar[,,"1994-02"])
g3_array_plot(ar["50:60","age3",])
# Generate by-year report for ages 2..4
g3_array_agg(ar, c('age', 'year'), age = 2:4)
# ...for only step 1
g3_array_agg(ar, c('age', 'year'), age = 2:4, step = 1)
# Report on smallest length group, for each timestep
g3_array_agg(ar, c('length', 'time'), length = 55)
# Use midlen as the dimension name
g3_array_agg(ar, c('length', 'time'), length = 55, opt_length_midlen = TRUE)
# Combine 2 arrays with disjoint age ranges into one list
g3_array_combine(list(
g3_array_agg(ar, c('age', 'year'), age = 2:4),
g3_array_agg(ar / 1000, c('age', 'year'), age = 3:5) ))
# We can aggregate lists of arrays, applying the same options for each
list(a = ar, b = ar * 10) |> g3_array_agg(c('year', 'age'), length = 55)
# We can aggregate then combine
list(a = ar, b = ar * 10) |>
g3_array_agg(c('year', 'age'), length = 55) |> g3_array_combine()
Run the code above in your browser using DataLab