encode {encode} | R Documentation |
For compact storage, encode
combines a set of levels and labels
(codes and decodes) into a simple string. The default method converts its
argument to character. The list method operates element-wise, expecting an
equal number of label elements, each of which have the same length as the
corresponding element of x.
encode(x, ...)
x |
object |
... |
passed arguments |
An empty 'encoding' consists of four identical characters, e.g. ////
.
A non-empty encoding must be at least 5 characters long, beginning and
ending with two instances of sep
e.g. //1//
. Levels are
likewise separated from each other by double separators, e.g. //1//2//
.
If a label (decode) is available for a level, it follows the corresponding level:
the two are separated by a single instance of sep
, e.g. //1/a//2/b//
.
Encodings may be combined as elements of a character vector, i.e. and encoded vector. Choice of separator may vary among elements, but must be consistent within elements.
Labels (decodes) may be zero-length, but not levels (codes), e.g. //1///
is valid but ///a//
is not. A zero-length decode is extracted as an empty string.
Duplicate levels (codes) result in a warning for encode(), and are otherwise silently ignored. Duplicate labels (decodes) result in case-collapsing.
encode.character
encode.default
encode.list
codes
decodes
decode
encoded
Other encode: encode.character
,
encode.default
, encode.list
a <- encode( x = list( c('M','F'), c(1:4) ), labels = list( c('male','female'), c('caucasian','asian','african',NA) ) ) b <- encode(c(1:2),c('pediatric','adult')) a b c <- c('a',NA,'##b##') encoded(a) encoded(b) encoded(c) encoded(' //4// ') codes(a) codes(b) codes(b,simplify=FALSE) codes(c) codes('..1..') decodes(a) decodes(b) decodes(c) decode(1:4,'//1/a//2/b//3/c//') decode(1:4,'//1/a//1/b//3/c//') # duplicate code: ignored decode(1:4,'//1/a//2/a//3/c//') # duplicate decode: collapsed # encode(c(1,1,2,3),c('a','b','c','d')) Warning: duplicate codes