Я хочу, чтобы в некоторых ячейках был напечатан красный крестик ✘.
X <- "\u2718"
redX <- paste0("\033[0;31m", X, "\033[0m")
cat(redX)
печатает один символ, который я хочу.
tibble::tibble(X)
работает для цветного символа по умолчанию.
Однако,
tibble::tibble(redX)
дает:
# A tibble: 1 x 1
redX
<chr>
1 "\u001b[0;31m✘\u001b[0m"
Таким образом, цветовое кодирование не распознается.
Использование crayon также явно не работает:
tibble::tibble(intToUtf8(10008)) # works for default color
tibble::tibble(crayon::red(intToUtf8(10008))) # doesn't work for red
Если я использую pillar , я получаю окраску, но Unicode не выходит:
pillar_shaft.character <- function(x, ...){
out <- pillar::style_na(format(x))
pillar::new_pillar_shaft_simple(out, align = "right")
}
pillar::pillar_shaft(c("\u2718", intToUtf8(10008)))
Воспроизводимый пример:
redX <- paste0("\033[0;31m", X, "\033[0m")
X <- "\u2718"
cat(redX) # works
cat(X) # works
tibble::tibble(X) # works for default color
tibble::tibble(redX) # doesn't work
tibble::tibble(intToUtf8(10008)) # works for default color
tibble::tibble(crayon::red(intToUtf8(10008))) # doesn't work
pillar_shaft.character <- function(x, ...){
out <- pillar::style_na(format(x))
pillar::new_pillar_shaft_simple(out, align = "right")
}
pillar::pillar_shaft(c("\u2718", intToUtf8(10008))) # gives color, but unicode character is not recognized