Dribble в R: как дублировать все операции ввода-вывода в файл?
Есть ли в R что-то вроде функции Common Lisp DRIBBLE или команды Unix?
В частности, я хочу, чтобы все, что я печатаю, и все, что печатает R, мне добавлялось в файл (tee
захватывает только стандартный вывод; Я хочу все: ошибки, предупреждения, печать, кошка, мой вклад).
Я нашел 10-летнее сообщение на эту тему, которое предлагает слабую версию этого (оно не фиксирует вывод cat/print).
Стандартный приемник функции только захватывает (не дублирует) вывод R; и это не захватывает мой вклад.
Есть ли способ лучше?
2 ответа
Посмотрите на txtStart
функция (и связанные функции) в пакете TeachingDemos. Я думаю, что он делает все, что вы хотите, кроме захвата ошибок (и TaskCallback
Система в R внутренностях должна быть обновлена для того, чтобы это произошло).
Другой вариант - запустить R внутри другой среды, такой как ESS (внутри Emacs) (есть и другие, но я менее знаком с ними). Затем все фиксируется в редакторе / буфере и может быть сохранено в файл.
Обратите внимание, что sink
функция имеет split
аргумент, который работает как tee
чтобы показать вывод на экране, а также скопировать его в файл, но он по-прежнему только выводит, а не вводит команды.