2011-09-21 76 views
12

我希望能夠從內R. 在命令行下寫的作品中的R到文件中的幫助文件的內容:如何將幫助的內容寫入R中的文件?

  • R --slave -e 'library(MASS); help(survey)' > survey.txt
    • 該命令寫爲調查數據文件幫助文件
    • --slave皮既初始提示和所得從 輸入的命令輸出
    • -e '...'發送命令至R
    • > survey.txt R的輸出寫入到文件

然而,這似乎並沒有工作:

library(MASS) 
sink("survey.txt") 
help(survey) 
sink() 
  • 我怎樣才能幫助文件的內容保存到R內的文件?
+0

你應該能夠做的比這更好。R本身現在正在處理Rd標記,所以**必須是'tools'和其他基本R包中的解析器和轉換器。 –

+1

與[R help page as object]相關(http://stackoverflow.com/questions/8918753/r-help-page-as-object)。 –

回答

15

看起來你需要的兩個功能是tools:::Rd2txtutils:::.getHelpFile。這會將幫助文件打印到控制檯,但是您可能需要擺弄參數以使其以您想要的方式寫入文件。

例如:

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

由於這些功能目前未出口的,我勸你不要依靠它們用於任何生產代碼。用它們作爲創建自己的穩定實現的指南會更好。

3

儘管Joshua的指示很完美,但我偶然發現了另一種保存R幫助文件的策略;所以我想我會分享它。它適用於我的電腦(Ubuntu),其中less是R的尋呼機。它基本上只涉及從less保存文件。

  • help(survey)
  • 然後按照these instructions保存less緩衝到文件
    • 即類型g|$tee survey.txt
      • g轉到少緩衝區的頂部,如果你是不是已經有
      • |從當前標記開始的範圍之間的管道文本
      • ,並在$結束指示緩衝
      • 的shell命令tee允許標準輸出的末尾將被髮送到一個文件