On 11-04-18 9:51 PM, Matt Shotwell wrote:
Does anyone know if there is a simple way to print raw vectors, such
that ASCII characters are printed for bytes in the ASCII range, and
their hex representation otherwise? rawToChar doesn't work when we have
something like c(0x00, 0x00, 0x44, 0x00).

Do you really need hex? rawToChar(x, multiple=TRUE) comes close, but displays using octal or symbolic escapes, e.g.

[1] "" "\001" "\002" "\003" "\004" "\005" "\006" "\a" "\b" "\t" "\n" [12] "\v" "\f" "\r" "\016" "\017" "\020" "\021" "\022" "\023" "\024" "\025" [23] "\026" "\027" "\030" "\031" "\032" "\033" "\034" "\035" "\036" "\037" " " [34] "!" "\"" "#" "$" "%" "&" "'" "(" ")" "*" "+"

If you really do want hex, then you'll need something like

ifelse( x < 32 | x >= 127, as.character(x), rawToChar(x, multiple=TRUE))

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to