當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R Sweave 自動生成報告


R語言 Sweave 位於 utils 包(package)。

說明

Sweave 提供了一個靈活的框架,用於混合文本和 R/S 代碼以自動生成報告。基本思想是用其輸出替換代碼,以便最終文檔僅包含文本和統計分析的輸出:但是,也可以包含源代碼。

用法

Sweave(file, driver = RweaveLatex(),
       syntax = getOption("SweaveSyntax"), encoding = "", ...)

Stangle(file, driver = Rtangle(),
        syntax = getOption("SweaveSyntax"), encoding = "", ...)

參數

file

Sweave 源文件的路徑。請注意,可以在沒有擴展名的情況下提供此函數,但僅當目錄中恰好有一個基本名稱與 file 匹配的 Sweave 文件時,該函數才會繼續。

driver

實際的主力,(一個函數返回)一個名為list的五個函數;有關詳細信息,請參閱 vignette("Sweave") 中的“Sweave 用戶手冊”第 5 節。

syntax

NULL 或類"SweaveSyntax" 的對象或帶有其名稱的字符串。請參閱“語法定義”部分。

encoding

file 的默認編碼。

...

進一步的參數傳遞給驅動程序的設置函數。有關默認驅動程序的參數,請分別參閱 RweaveLatexSetupRtangleSetup

細節

Sweave 源文件包含標記語言(如 LaTeX)中的文本和R(或 S)代碼。代碼將被最終標記文件中的輸出(文本或圖形)替換。如果輸入數據發生更改,則可以重新生成報告,並在生成報告的同一文件中記錄代碼以重現分析。

Sweave將文檔和代碼塊(或其輸出)合並到一個文檔中。Stangle僅從 Sweave 文件中提取代碼,創建R可以使用運行的源文件source。 (裏麵的代碼\Sexpr{}語句被忽略Stangle.)

Stangle 隻是 Sweave 的包裝,指定不同的默認驅動程序。可以使用替代驅動程序,並由各種貢獻的軟件包提供。

環境變量SWEAVE_OPTIONS可用於覆蓋驅動程序設置的初始選項:它應該是一組以逗號分隔的key=value項目,如將在“⁠\SweaveOpts⁠’文件中的聲明。

如果未指定encoding(默認),非 ASCII 源文件必須包含以下形式的行

  \usepackage[foo]{inputenc}

(在哪裏 '⁠foo⁠’通常是‘拉丁語1', '拉丁2', '⁠utf8⁠' 或者 '⁠cp1252⁠' 或者 '⁠cp1250⁠’) 或注釋行

  %\SweaveUTF8

聲明 UTF-8 輸入(自 2018 年以來 pdfTeX 假定的默認編碼),否則它們會給出錯誤。可以使用參數 encoding = "bytes" 完全關閉重新編碼。

語法定義

Sweave 允許使用靈活的語法框架來標記文檔和文本塊。默認為 noweb-style 語法,也可以使用 LaTeX-style 語法作為替代。 (有關更多詳細信息,請參閱用戶手冊。)

如果syntax = NULL(默認),則依次查閱可用語法對象,並在其extension組件與文件名匹配(作為正則表達式)時選擇它們。提供了對象 SweaveSyntaxNoweb (帶有 extension = "[.][rsRS]nw$" )和 SweaveSyntaxLatex (帶有 extension = "[.][rsRS]tex$" ),但用戶或包可以向其他對象提供與模式 SweaveSyntax.* 匹配的名稱。

例子

testfile <- system.file("Sweave", "Sweave-test-1.Rnw", package = "utils")


## enforce par(ask = FALSE)
options(device.ask.default = FALSE)

## create a LaTeX file - in the current working directory, getwd():
Sweave(testfile)

## This can be compiled to PDF by
## tools::texi2pdf("Sweave-test-1.tex")

## or outside R by
##
## 	R CMD texi2pdf Sweave-test-1.tex
## on Unix-alikes which sets the appropriate TEXINPUTS path.
##
## On Windows,
##      Rcmd texify --pdf Sweave-test-1.tex
## if MiKTeX is available.

## create an R source file from the code chunks
Stangle(testfile)
## which can be sourced, e.g.
source("Sweave-test-1.R")


作者

Friedrich Leisch and R-core.

參考

Friedrich Leisch (2002) Dynamic generation of statistical reports using literate data analysis. In W. Härdle and B. Rönz, editors, Compstat 2002 - Proceedings in Computational Statistics, pages 575-580. Physika Verlag, Heidelberg, Germany, ISBN 3-7908-1517-9.

也可以看看

Sweave User Manual”,utils 包中的小插圖。

RweaveLatexRtangle。例如,替代 Sweave 驅動程序位於包 weaver (Bioconductor)、 R2HTML ascii 中。

tools::buildVignette 使用 Sweave 或替代暈影處理引擎處理源文件。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Automatic Generation of Reports。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。