- Вопрос или проблема
- Ответ или решение
- Шаг 1: Проверка текущего значения ширины
- Шаг 2: Установка новой ширины
- Шаг 3: Автоматическая настройка ширины
- Метод 1: Использование переменной окружения COLUMNS
- Метод 2: Использование команды tput
- Шаг 4: Автоматизация при запуске
- Шаг 5: Обновление при изменении размера окна
- Заключение
Вопрос или проблема
Я запускаю интерактивный R
в терминале, однако он не использует всю ширину терминала. Он использует только 72 символа из 226. Чтение данных с большим количеством столбцов в интерактивном R
очень неудобно.
Я использую urxvt
на debian 9,8
.
Смотрите ?option
:
‘width’: управляет максимальным количеством столбцов в строке, используемым для вывода векторов, матриц и массивов, а также при заполнении с помощью ‘cat’. Столбцы обычно совпадают с символами, за исключением восточноазиатских языков. Вы можете изменить это, если измените размер окна, в котором работает R. Допустимые значения от 10 до 10000, по умолчанию обычно 80. (Ограничения допустимых значений находятся в файле ‘Print.h’ и могут быть изменены путем повторной компиляции R.) Некоторые консоли R автоматически меняют значение, когда они изменяются в размерах.
Чтобы запросить значение:
R> getOption("width")
[1] 80
Чтобы изменить значение (добавьте это в ~/.Rprofile
, чтобы изменить его навсегда):
options("width"=200)
Только что обнаружил следующее. Кажется, это работает правильно, но у меня было мало тестирования.
options(width=Sys.getenv("COLUMNS"))
options(setWidthOnResize=TRUE)
Первый вариант можно обернуть в функцию для запуска при старте, а второй можно также добавить в ваше .Rprofile
.
К сожалению, предложение Алана не совсем работает, потому что bash не экспортирует переменную $COLUMNS
. Я успешно протестировал это улучшение:
options(width=as.integer(system2("echo", "$COLUMNS", stdout=TRUE)))
options(setWidthOnResize=TRUE)
В качестве альтернативы, если у вас установлены ncurses:
options(width=as.integer(system2("tput", "cols", stdout=TRUE)))
options(setWidthOnResize=TRUE)
Естественно, вы хотите, чтобы одна из этих строк была в вашем .Rprofile
. Первая строка обрабатывает момент, когда R запускается, а вторая – когда окно изменяется в размерах.
Ответ или решение
Чтобы настроить R для использования всей ширины вашего терминала, Вам необходимо управлять параметром width
, что позволит отображать больше данных в одном ряду. По умолчанию R устанавливает этот параметр на значение 80, что может быть неудобно, особенно если ваш терминал поддерживает гораздо более широкий вывод. Ниже приведены шаги и рекомендации, как это можно сделать, включая автоматизацию и изменение значений в зависимости от размера окна терминала.
Шаг 1: Проверка текущего значения ширины
Вы можете проверить текущее значение параметра width
, выполнив следующую команду в R:
getOption("width")
Шаг 2: Установка новой ширины
Чтобы изменить ширину в R, вы можете установить её значение вручную или автоматически. Для этого выполните команду:
options(width=200) # например, если хотите установить ширину на 200
Однако, вместо жестко закодированного значения, рекомендуется использовать методы, которые автоматически определяют ширину терминала.
Шаг 3: Автоматическая настройка ширины
Метод 1: Использование переменной окружения COLUMNS
К сожалению, переменная $COLUMNS
не всегда доступна в среде bash, поэтому использование альтернативного метода может дать лучшие результаты.
options(width=as.integer(system2("echo", "$COLUMNS", stdout=TRUE)))
Метод 2: Использование команды tput
Если на вашей системе установлены ncurses
, вы можете использовать следующий код, чтобы получить ширину терминала:
options(width=as.integer(system2("tput", "cols", stdout=TRUE)))
Шаг 4: Автоматизация при запуске
Чтобы сделать так, чтобы настройки применялись автоматически при каждом запуске R, вы можете добавить необходимые строки кода в файл ~/.Rprofile
. Откройте файл в текстовом редакторе и добавьте следующие строки:
options(width=as.integer(system2("tput", "cols", stdout=TRUE)))
options(setWidthOnResize=TRUE)
Шаг 5: Обновление при изменении размера окна
Опция setWidthOnResize=TRUE
позволяет R автоматически обновлять значение ширины, когда Вы изменяете размер окна терминала. Это обеспечивает дополнительную гибкость и комфорт в работе.
Заключение
С помощью приведенных выше шагов вы сможете настроить R для использования всей ширины вашего терминала, что значительно улучшит отображение данных. Используйте автонастройку для максимального удобства. Регулярно проверяйте настройки и обновляйте их по мере необходимости, чтобы ваша работа в R оставалась эффективной и продуктивной.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться за консультацией к сообществу R или к другим специалистам в области IT.