library(BigDataStatMeth)
# Create test matrices
N <- 1000
M <- 1000
fn <- "test_temp.hdf5"
set.seed(555)
Y <- matrix(rnorm(N*M), N, M)
X <- matrix(rnorm(N), N, 1)
Ycp <- crossprod(Y)
# Compare with in-memory solution
resm <- bdSolve(Ycp, X)
resr <- solve(Ycp, X)
all.equal(resm, resr)
# Save matrices to HDF5
bdCreate_hdf5_matrix(filename = fn,
object = Ycp,
group = "data",
dataset = "A",
transp = FALSE,
overwriteFile = TRUE,
overwriteDataset = TRUE,
unlimited = FALSE)
bdCreate_hdf5_matrix(filename = fn,
object = X,
group = "data",
dataset = "B",
transp = FALSE,
overwriteFile = FALSE,
overwriteDataset = TRUE,
unlimited = FALSE)
# Solve using HDF5-stored matrices
bdSolve_hdf5(filename = fn,
groupA = "data",
datasetA = "A",
groupB = "data",
datasetB = "B",
outgroup = "Solved",
outdataset = "A_B",
overwrite = TRUE)
# Cleanup
if (file.exists(fn)) {
file.remove(fn)
}
Run the code above in your browser using DataLab