Convert array to data.table

array2dt(arr, dimnames)

dt2array(dt, value_col = "value")

Arguments

arr

input array

dimnames

list of dimension names, e.g., dimnames(arr)

Value

data.table

Examples

library(Ipaper)

arr <- array(1:6,
  dim = c(2, 3),
  dimnames = list(
    site = c("A", "B"),
    date = c("d1", "d2", "d3")
    # var = c("v1", "v2", "v3", "v4")
  )
)

# array -> dt
dt <- array2dt(arr, dimnames(arr))
print(dt)
#> [data.table]: 
#> # A data frame: 6 × 3
#>   site  date  value
#>   <chr> <chr> <int>
#> 1 A     d1        1
#> 2 A     d2        3
#> 3 A     d3        5
#> 4 B     d1        2
#> 5 B     d2        4
#> 6 B     d3        6

# dt -> array
arr2 <- dt2array(dt)
all.equal(arr, arr2)
#> [1] TRUE