Очевидно, что R не допускает нулевых символов:
c("abc\0d")
Error: nul character not allowed (line 1)
Я пытаюсь декодировать шестнадцатеричную строку и записать результаты в файл. NUL ценит для меня решающее значение. Сейчас я написал так много:
# Example of hex string
msg <- '504F03032C0000000803F8'
hex <- sapply(seq(1, nchar(as.character(msg)), by=2),
function(x) substr(msg, x, x+1))
# trying to decode hex
x <- NULL
for( i in 1:length(hex)){
x[i] <- as.character(ifelse(hex[i] == "00", as.raw(0), rawToChar(as.raw(strtoi(hex[i], 16L)))))
}
write(paste0(x, collapse = ""), "test1")`
Как я могу изменить as.raw(0)
часть, чтобы в файле я видел значение NUL, а не 00? Можно ли вообще сделать это в R? Может быть, мне стоит перейти на другую программу, например python?