# Prepare
library(filearray)
filebase <- tempfile()
if(file.exists(filebase)){ unlink(filebase, TRUE) }
# create array
x <- filearray_create(filebase, dimension = c(200, 30, 8))
print(x)
# Assign values
x[] <- rnorm(48000)
# Subset
x[1,2,]
# load existing array
filearray_load(filebase)
x$set_header("signature", "tom")
filearray_checkload(filebase, signature = "tom")
if (FALSE) {
# Trying to load with wrong signature
filearray_checkload(filebase, signature = "jerry")
}
# check-load, and create a new array if fail
x <- filearray_load_or_create(
filebase = filebase, dimension = c(200, 30, 8),
verbose = FALSE, signature = "henry"
)
x$get_header("signature")
# check-load with initialization
x <- filearray_load_or_create(
filebase = filebase,
dimension = c(3, 4, 5),
verbose = FALSE, mode = "readonly",
on_missing = function(array) {
array[] <- seq_len(60)
}
)
x[1:3,1,1]
# Clean up
unlink(filebase, recursive = TRUE)
Run the code above in your browser using DataLab