File: bit-demo.R

package info (click to toggle)
r-cran-bit 4.6.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,000 kB
  • sloc: ansic: 5,145; sh: 13; makefile: 6
file content (64 lines) | stat: -rw-r--r-- 2,166 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
## ----echo = FALSE, results = "hide", message = FALSE--------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")
library(bit)
.ff.is.available = requireNamespace("ff", quietly=TRUE) && packageVersion("ff") >= "4.0.0"
if (.ff.is.available) library(ff)
#tools::buildVignette("vignettes/bit-demo.Rmd")
#devtools::build_vignettes()

## -----------------------------------------------------------------------------
n <- 1e8
b1 <- bit(n)
b1

## -----------------------------------------------------------------------------
object.size(b1) / n

## -----------------------------------------------------------------------------
b1[10:30] <- TRUE
summary(b1)

## -----------------------------------------------------------------------------
b2 <- bit(n)
b2[20:40] <- TRUE
b2

## -----------------------------------------------------------------------------
b1 & b2

## -----------------------------------------------------------------------------
summary(b1 & b2)

## -----------------------------------------------------------------------------
w1 <- as.bitwhich(b1)
w2 <- as.bitwhich(b2)
object.size(w1) / n

## -----------------------------------------------------------------------------
w1 & w2

## -----------------------------------------------------------------------------
summary(w1 & w2)

## -----------------------------------------------------------------------------
summary(b1 & w2)

## -----------------------------------------------------------------------------
summary(b1, range=c(1, 1000))

## -----------------------------------------------------------------------------
as.which(b1, range=c(1, 1000))

## -----------------------------------------------------------------------------
lapply(chunk(from=1, to=n, length=10), function(i) as.which(b1, range=i))

## ----eval=.ff.is.available----------------------------------------------------
# options(ffbatchbytes=1024^3)
# x <- ff(vmode="single", length=n)
# x[1:1000] <- runif(1000)
# lapply(chunk(x, length.out = 10), function(i) sum(x[as.hi(b1, range=i)]))

## ----eval=.ff.is.available----------------------------------------------------
# delete(x)
# rm(x, b1, b2, w1, w2, n)