7

.Rnw通常の LaTex と R コード チャンクが混在するファイルがあるとします。(特に.Rnwスライド ドキュメントの変換に関心がありますが、この質問はどのドキュメントにも当てはまり.Rnwます)。ここで、これを、すべての R コードに加えて、通常は LaTex によって生成されるすべてのテキストをR コメントとして含むファイルに変換したいと考えています。言い換えれば、私が望む機能は機能と似ていStangle()ますが、LaTex のすべてのテキスト部分を、結果の .R ファイルでコメント化されたプレーン テキストに変換することも必要です。

これは、お気に入りの構文強調表示エディター (emacs など) で簡単に確認できる、コメント付きの R ファイルを自動的に生成するための非常に便利な方法です。これは、R コードが少ししかない長い記事である Sweave ドキュメントの場合、あまり良いアイデアとは思えないかもしれませんが、.Rnwドキュメントが実際にスライド プレゼンテーションである場合 (たとえばbeamer、スライドは、R コードの完璧なコメントになります。

誰でもこれを行う方法について何か考えがありますか? 前もって感謝します。

4

1 に答える 1

8

を使用したアプローチの 1 つを次に示しregexます。まだいくつかの問題が残っており、解決策で更新されるリストを維持します。

# READ LINES FROM RNW FILE
lines <- readLines('http://users.stat.umn.edu/~charlie/Sweave/foo.Rnw')

# DETECT CODE LINES USING SWEAVE CHUNK DEFINITIONS
start_chunk <- grep("^<<.*=$", lines)
end_chunk   <- grep("^@" , lines)
r_lines     <- unlist(mapply(seq, start_chunk + 1, end_chunk - 1))

# COMMENT OUT NON CODE LINES AND WRITE TO FILE
lines[-r_lines] <- paste("##", lines[-r_lines])
writeLines(lines, con='codefile.R')

残っている問題:

  1. を使用して他のチャンク内で呼び出されたチャンクをうまく処理しません<<chunk_name>>
于 2011-11-09T22:51:24.650 に答える