Learn R Programming

pack (version 0.1-1)

unpack: Unpack raw vectors

Description

Break a raw vector into chunks according to the values in template.

Usage

unpack(template, ...)

Arguments

template
A string, see 'Details'
...
Raw vector(s) to be unpacked

Value

A list with an element for each value in template.

Details

Currently supported template values are: 'a' - A null padded string (as of R-2.8.0, strings cannot contain embedded nulls) 'A' - A space padded string 'b' - An ascending bit order binary vector, (must be a multiple of 8 long) 'B' - An descending bit order binary vector, (must be a multiple of 8 long) 'C' - An unsigned char (octet) value 'v' - An unsigned short (16-bit) in "VAX" (little-endian) order 'V' - An unsigned long (32-bit) in "VAX" (little-endian) order 'f' - A single-precision float 'd' - A double-precision float 'x' - A null byte 'H' - A raw byte Values 'a', 'A', and 'H' may be followed by a repeat value. A repeat value of '*' will cause the remainder of the bytes in values to be placed in the last element. '/' allows packing and unpacking of a sequence of values where the packed structure contains a packed item count followed by the packed items themselves. If there are more template values or if the repeat count of a field or a group is larger than what the remainder ... allows, unpack returns NULL. If ... is longer than what is described by template, the rest is ignored.

References

http://perldoc.perl.org/functions/unpack.html

See Also

pack

Examples

Run this code
  (x <- pack('A4 C v A8 V', 'pack', 2, 8, 'sequence', 68098))
  (u1 <- unpack('A4 C H*', x))
  (u2 <- unpack('v/A V', u1[[3]]))

Run the code above in your browser using DataLab