подчеркнуть имена столбцов в R - PullRequest
3 голосов
/ 05 марта 2020

Как вы подчеркиваете имена столбцов в R?

Я попытался сохранить строку, а затем использовать ее с

library(crayon)

string1 <- underline("hello")
string2 <- underline("hello2")

colnames(table) <- c(string1, string2)

Однако строка1 печатается как "\033[4mhello\033[24m".

String2 печатается как "\033[4mhello2\033[24m"

Пожалуйста, дайте мне знать, как я могу подчеркнуть имена столбцов.

Я просто хочу, чтобы имена столбцов выделялись, даже меняя цвет текст при печати на консоль будет в порядке

1 Ответ

1 голос
/ 05 марта 2020

Код печати по умолчанию для матриц и data.frames внутренне обрабатывает непечатаемые символы и экранирует их. Вот почему код escape-символа ANSI '\033' экранируется в `'\ 033', а не печатается напрямую.

Если вы не хотите этого, вам придется написать собственную функцию print.data.frame аналогично тому, как это делает tibble . Чтобы сделать это правильно, требуется немало логики c (и, следовательно, кода). Вы можете обмануть, однако:

print.data.frame = function (x, ...) {
    output = capture.output(base::print.data.frame(x, ...))
    colnames = crayon::underline(colnames(x))
    regmatches(output[1L], gregexpr('\\S+', output[1L]))[[1L]] = colnames
    cat(output, sep = '\n')
}

Этот захватывает стандартный вывод print.data.frame и заменяет первую строку (= заголовки столбцов) версией с подчеркиванием.

(Обратите внимание, что если в именах столбцов есть пробелы, приведенный выше код завершится ошибкой .)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...