R's raw vector is useful for storing a single binary object. What if you want to put a vector of them in a data frame? The 'blob' package provides the blob object, a list of raw vectors, suitable for use as a column in data frame.
The goal of blob is to provide a simple S3 class to represent a vector of binary objects, aka blobs. The blob
class is a lightweight wrapper around a list of raw vectors, suitable for inclusion in a data frame.
In most cases you will not need to use this package explicitly: it will be used transparently by packages that need to load BLOB columns from databases or binary file formats.
You can install blob from github with:
devtools::install_github("tidyverse/blob")
To create a blob, use blob()
, new_blob()
or as.blob()
:
x1 <- charToRaw("Good morning")x2 <- as.raw(c(0x48, 0x65, 0x6c, 0x6c, 0x6f))new_blob(list(x1, x2))#> [1] blob[12 B] blob[5 B]blob(x1, x2)#> [1] blob[12 B] blob[5 B]as.blob(c("Good morning", "Good evening"))#> [1] blob[12 B] blob[12 B]
Now suggesting pillar instead of importing tibble, and using colored
formatting with the prettyunits package with B
instead of b
as units
(#7, #9).
The blob class can now be used for S4 dispatch.
Calling c()
on blob objects returns a blob.
New maintainer: Kirill Müller.
Added as.blob.blob()
and as.data.frame.blob()
methods (#3).
Size of very large blobs is displayed correctly.