as.ff.rdCoercing ram to ff and ff to ram objects while optionally modifying object features.
as.ff(x, ...)
as.ram(x, ...)
# Default S3 method
as.ff(x, filename = NULL, overwrite = FALSE, ...)
# S3 method for class 'ff'
as.ff(x, filename = NULL, overwrite = FALSE, ...)
# Default S3 method
as.ram(x, ...)
# S3 method for class 'ff'
as.ram(x, ...)If as.ff.ff is called on an 'ff' object or as.ram.default is called on a non-ff object AND no changes are required, the input object 'x' is returned unchanged.
Otherwise the workhorse clone.ff is called.
If no change of features are requested, the filename attached to the object remains unchanged, otherwise a new filename is requested (or can be set by the user).
If you use ram <- as.ram(ff) for caching, please note that you must close.ff before you can write back as.ff(ram, overwrite=TRUE) (see examples).
A ram or ff object.
message("create ff")
#> create ff
myintff <- ff(1:12)
message("coerce (=clone) integer ff to double ff")
#> coerce (=clone) integer ff to double ff
mydoubleff <- as.ff(myintff, vmode="double")
message("cache (=clone) integer ff to integer ram AND close original ff")
#> cache (=clone) integer ff to integer ram AND close original ff
myintram <- as.ram(myintff) # filename is retained
close(myintff)
#> [1] TRUE
message("modify ram cache and write back (=clone) to ff")
#> modify ram cache and write back (=clone) to ff
myintram[1] <- -1L
myintff <- as.ff(myintram, overwrite=TRUE)
message("coerce (=clone) integer ram to double ram")
#> coerce (=clone) integer ram to double ram
mydoubleram <- as.ram(myintram, vmode="double")
message("coerce (inplace) integer ram to double ram")
#> coerce (inplace) integer ram to double ram
myintram <- as.ram(myintram, vmode="double")
message("more classic: coerce (inplace) double ram to integer ram")
#> more classic: coerce (inplace) double ram to integer ram
vmode(myintram) <- "integer"
rm(myintff, myintram, mydoubleff, mydoubleram); gc()
#> used (Mb) gc trigger (Mb) max used (Mb)
#> Ncells 1021418 54.6 1994352 106.6 1994352 106.6
#> Vcells 1882110 14.4 8388608 64.0 3877600 29.6