Coercing ram to ff and ff to ram objects
as.ff.rdCoercing ram to ff and ff to ram objects while optionally modifying object features.
Usage
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, ...)Details
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).
Note
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).
Examples
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 1115929 59.6 2239654 119.7 2239654 119.7
#> Vcells 2030551 15.5 8388608 64.0 5871749 44.8