Nothing
### R code from vignette source 'mmap.Rnw'
###################################################
### code chunk number 1: set_seed
###################################################
set.seed(123)
###################################################
### code chunk number 2: as_mmap
###################################################
library(mmap)
r <- rnorm(20e6)
gc()
r <- as.mmap(r)
r
gc()
###################################################
### code chunk number 3: mmap_extract
###################################################
r[1:10]
r[87643]
head(r)
tail(r)
length(r)
r[1:10] <- 1:10
r[87643] <- 3.14159265
head(r)
r[87643]
munmap(r)
###################################################
### code chunk number 4: types1
###################################################
tmp <- tempfile()
writeBin(1:10L, tmp, size=1) # write int as 1 byte
readBin(tmp, integer(), size=1, signed=TRUE, n=10) # read back in to verify
file.info(tmp)$size # only 10 bytes on disk
###################################################
### code chunk number 5: mmap_int8
###################################################
m <- mmap(file=tmp, mode=int8())
m[]
nbytes(m)
munmap(m)
###################################################
### code chunk number 6: types
###################################################
# write out a vector of upper case letters as a char * array
writeBin(LETTERS, tmp)
let <- mmap(tmp, char(1))
let
let[]
munmap(let)
#
# view the data as a series of bytes instead, using raw()
let <- mmap(tmp, raw())
let[]
munmap(let)
#
# view the data as a series of short integers
let <- mmap(tmp, int16())
let[]
munmap(let)
###################################################
### code chunk number 7: struct
###################################################
# 2-byte (int16)
# 4-byte (int32 or integer)
# 8-byte float (real64 or double)
record.type <- struct(short=int16(),int=int32(),double=real64())
record.type
nbytes(record.type) # 14 bytes in total
###################################################
### code chunk number 8: struct_create
###################################################
writeBin(rep(raw(nbytes(record.type)), 100), tmp)
m <- mmap(tmp, record.type)
#ids <- sapply(1:100, function(X) paste(sample(letters,3),collapse=""))
m[] <- list(1:100L, sample(1e6,100), rnorm(100))#, ids)
###################################################
### code chunk number 9: struct_extract
###################################################
#m <- mmap(tmp, record.type)
m[1]
m[1:3]
m[1:3, "short"]
length(m)
###################################################
### code chunk number 10: struct_df
###################################################
extractFUN(m) <- function(X) do.call(data.frame, X)
extractFUN(m)
###################################################
### code chunk number 11: struct_df_ex
###################################################
m[1]
m[2:5]
m[2:5, "double"] # note that subset is on mmap, returning a new data.frame
m[2:5, 2]
m[1:9][,"double"] # second brackets act on d.f., as the first is on the mmap
###################################################
### code chunk number 12: struct_df_ex_cleanup
###################################################
munmap(m)
###################################################
### code chunk number 13: logical_test
###################################################
one.to.onemil <- 1:1e6L
writeBin(1:1e6L, tmp)
m <- mmap(tmp, int32())
str(m < 100)
str(which(one.to.onemil < 100))
system.time(m < 100)
system.time(which(one.to.onemil < 100))
###################################################
### code chunk number 14: logical_cleanup
###################################################
munmap(m)
rm(one.to.onemil)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.