Как записать содержимое справки в файл из R? - PullRequest
12 голосов
/ 21 сентября 2011

Я хотел бы иметь возможность записать содержимое файла справки в R в файл из R. Следующее работает из командной строки:

  • R --slave -e 'library(MASS); help(survey)' > survey.txt
    • Эта команда записывает файл справки для файла данных опроса
    • --slave скрывает как исходное приглашение, так и команды, введенные из результирующий вывод
    • -e '...' отправляет команду на R
    • > survey.txt записывает вывод R в файл survey.txt

Однако, похоже, это не работает:

library(MASS)
sink("survey.txt")
help(survey)
sink()
  • Как сохранить содержимое файла справки в файл из R?

Ответы [ 2 ]

15 голосов
/ 21 сентября 2011

Похоже, вам понадобятся две функции: tools:::Rd2txt и utils:::.getHelpFile.При этом файл справки выводится на консоль, но, возможно, вам придется поиграться с аргументами, чтобы заставить его записывать в файл так, как вы хотите.

Например:

hs <- help(survey)
tools:::Rd2txt(utils:::.getHelpFile(as.character(hs)))

Поскольку эти функции в настоящее время не экспортируются, я бы не рекомендовал вам полагаться на них для любого производственного кода.Было бы лучше использовать их в качестве руководства для создания собственной стабильной реализации.

3 голосов
/ 22 сентября 2011

В то время как инструкции Джошуа отлично работают, я наткнулся на другую стратегию сохранения файла помощи R;Поэтому я решил поделиться этим.Он работает на моем компьютере (Ubuntu), где less - пейджер R.По сути, это просто сохранение файла из less.

  • help(survey)
  • Затем следуйте этим инструкциям , чтобы сохранить less буфер в файл
    • т. Е. Тип g|$tee survey.txt
      • g переходит в верхнюю часть меньшего буфера, если вы еще не там
      • | передает текст между началом диапазонана текущей отметке
      • и заканчивающейся на $, которая указывает конец буфера
      • для команды оболочки tee, которая позволяет отправлять стандартный вывод в файл
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...