library(bigmemory)
nrows <- 50000
ncols <- 50
bkFile <- "bigmat2.bk"
descFile <- "bigmatk2.desc"
bigmat <- filebacked.big.matrix(nrow=nrows, ncol=ncols, type="double",
backingfile=bkFile, backingpath=".",
descriptorfile=descFile,
dimnames=c(NULL,NULL))
# Each column value with be the column number multiplied by
# samples from a standard normal distribution.
set.seed(123)
for (i in 1:ncols) bigmat[,i] = rnorm(nrows)*i
y <- rnorm(nrows) + bigmat[,1]
system.time(lmr1 <- bigLmPure(bigmat, y))
system.time(lmr2 <- lm.fit(x = bigmat[,], y = y))
max(abs(coef(lmr1) - coef(lmr2)))
Run the code above in your browser using DataLab