And, in this life there are things that are impossible, and there are some that are misunderstood and lead to unpleasant situations. @Roman is right: the matrix must be of the same atomic type. This is not a data frame.
Since the matrix must be of the same type, the bigmemory snooker bigmemory process several types in itself is bad. It can be done? I won’t go there. What for? Because everything else will assume that it receives a matrix, not a data frame. This will lead to more questions and sadness.
Now, what you can do is determine the types of each of the columns and generate a set of separate large memory files, each of which contains elements of a certain type. For instance. charBM = symbolic large matrix, intBM = integer large matrix, etc. You can then develop a wrapper that creates a data frame from all of this. Nevertheless, I do not recommend: treating different objects as they are, or forcing homogeneity, if possible, rather than trying to create a large grid data file.
@mdsumner correctly indicates ff . Another storage option is HDF5, which you can access via ncdf4 in R. Unfortunately, these other packages are not as pleasant as bigmemory .
source share