#' @useDynLib jsonlite C_collapse_array C_collapse_array_pretty_inner C_collapse_array_pretty_outer
collapse <- function(x, inner = TRUE, indent = 0L) {
if(is.na(indent)){
.Call(C_collapse_array, x)
} else if(isTRUE(inner)){
.Call(C_collapse_array_pretty_inner, x)
} else {
.Call(C_collapse_array_pretty_outer, x, indent)
}
}
#' @useDynLib jsonlite C_row_collapse_array
row_collapse <- function(m, indent = NA_integer_){
.Call(C_row_collapse_array, m, indent = indent)
}
# Iteratively collapse a high dimensional matrix / array
# Does not perform the final collapse, which is done in asJSON.array()
collapse_array <- function(x, columnmajor = FALSE, indent){
# dimensionality of the array
n <- length(dim(x))
# Collapse the inner vectors
dim <- 1:(n-1) + as.numeric(columnmajor)
x <- apply(x, dim, collapse, inner = TRUE, indent = indent)
# Collapse higher dimensions
for(i in rev(seq_along(dim(x)))[-1]) {
dim <- 1:(length(dim(x))-1) + as.numeric(columnmajor)
x <- apply(x, dim, collapse, inner = FALSE, indent = indent + 2L * i)
}
x
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.