print.raw - but convert ASCII?
On Tue, 2011-04-19 at 03:14 -0400, Duncan Murdoch wrote:
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.
No, but I've almost learned to count efficiently in hex. :)
[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))
That does it. Thanks. -Matt
Duncan Murdoch