1 #LyX 2.3 created this file. For more info see http://www.lyx.org/
5 \save_transient_properties true
6 \origin /systemlyxdir/examples/ja/
9 %% maxwidth is the original width if it's less than linewidth
10 %% otherwise use linewidth (to make sure the graphics do not exceed the margin)
12 \ifdim\Gin@nat@width>\linewidth
20 \use_default_options true
24 \maintain_unincluded_children false
26 \language_package none
27 \inputencoding utf8-platex
29 \font_roman "palatino" "default"
30 \font_sans "lmss" "default"
31 \font_typewriter "lmtt" "default"
32 \font_math "auto" "auto"
33 \font_default_family default
34 \use_non_tex_fonts false
37 \font_sf_scale 100 100
38 \font_tt_scale 100 100
40 \use_dash_ligatures false
42 \default_output_format default
44 \bibtex_command default
45 \index_command default
46 \paperfontsize default
51 \use_package amsmath 1
52 \use_package amssymb 1
55 \use_package mathdots 1
56 \use_package mathtools 1
58 \use_package stackrel 1
59 \use_package stmaryrd 1
60 \use_package undertilde 1
62 \cite_engine_type default
66 \paperorientation portrait
80 \paragraph_separation indent
81 \paragraph_indentation default
83 \math_numbering_side default
87 \paperpagestyle default
88 \tracking_changes false
98 \begin_layout Standard
102 \begin_layout Plain Layout
106 SweaveOpts{prefix=TRUE,prefix.string=sweave-prefix,keep.source=FALSE}
114 \begin_layout Standard
118 \begin_layout Plain Layout
122 maxwidth はプリアンブル中で定義されています。文書設定をご覧ください。
125 \begin_layout Plain Layout
149 \begin_layout Plain Layout
151 \begin_inset CommandInset href
153 name "xie@yihui.name"
154 target "xie@yihui.name"
169 \begin_layout Plain Layout
182 \begin_layout Plain Layout
194 \begin_layout Standard
195 Sweaveは、文芸的プログラミングの考えに従った、動的なレポート生成するための、R言語(
196 \begin_inset Flex URL
199 \begin_layout Plain Layout
201 http://www.r-project.org
206 )ツールです。Rコードは、\SpecialChar LaTeX
207 文書の中で混用することができ、文書がコンパイルされるときにRで実行されます。結果は、\SpecialChar TeX
211 \begin_layout Standard
217 モジュールを使えば、どの文書クラスでもSweaveをそのまま使うことができます。
223 文書\SpecialChar menuseparator
224 設定\SpecialChar menuseparator
227 を使用します。この説明書では、Sweaveでよく使われる機能をいくつか紹介し、本モジュールがどう動作するかを説明します。この説明書のPDF版は、
228 \begin_inset Flex URL
231 \begin_layout Plain Layout
233 https://github.com/downloads/yihui/lyx/sweave.pdf
241 \begin_layout Section
245 \begin_layout Standard
254 に依存しますので、このファイルが、システムの
258 変数に含まれるパスになくてはなりません。これは、LinuxやMac OSユーザーには大した問題とならないでしょうが、Windowsユーザーには混乱を招くかもしれ
263 が何かわからない場合には、R言語のリポジトリ
264 \begin_inset Flex URL
267 \begin_layout Plain Layout
269 https://github.com/yihui/lyx
278 を使って、パスを自動的に変更するか(推奨はできません。何にせよ
284 ツール\SpecialChar menuseparator
285 設定\SpecialChar menuseparator
286 パス\SpecialChar menuseparator
289 からRのバイナリパスを追加することができます(推奨)。後者の場合、大抵
301 のような形をしており、R内で下記のようにして確認することができます。
304 \begin_layout Standard
308 \begin_layout Plain Layout
310 <<where-is-R-bin,eval=FALSE>>=
313 \begin_layout Plain Layout
318 \begin_layout Plain Layout
328 \begin_layout Standard
331 ツール\SpecialChar menuseparator
334 を使って、\SpecialChar LyX
347 モジュールを使うことはできません。Sweaveの更新は続いていますので、最新版のRを使用することをお勧めします。Rに同梱され、このパス下にある(CTANにはあり
348 ません)\SpecialChar LaTeX
353 によって、下記のように依存関係が追加されます。
356 \begin_layout Standard
360 \begin_layout Plain Layout
362 <<sweave-sty,eval=FALSE>>=
365 \begin_layout Plain Layout
367 file.path(R.home('share'), 'texmf', 'tex', 'latex')
370 \begin_layout Plain Layout
380 \begin_layout Standard
382 ユーザーは、Mik\SpecialChar TeX
383 の設定で、Mik\SpecialChar TeX
384 のルートディレクトリ一覧にtexmfディレクトリも追加したほうが良いかもしれません。また、
400 あります。\SpecialChar LyX
405 を検出できないときは、直接Rからコピーしますので、このスタイルファイルがどこにあるかわからない場合でも、Sweaveモジュールは動作します。
408 \begin_layout Section
412 \begin_layout Standard
413 Sweave文書を書く前に、Sweaveオプションを設定しましょう。Sweaveの設定コマンドは
419 ですが、これは、\SpecialChar LyX
422 挿入\SpecialChar menuseparator
423 任意設定差込枠\SpecialChar menuseparator
429 挿入\SpecialChar menuseparator
433 )ことで挿入することができます。例えば、文頭で大域オプション
437 を設定して、すべてのRコードを抑制することもできます(既定では、Rコードとその出力は、両方とも\SpecialChar LaTeX
441 \begin_layout Standard
443 でRコードを書くには、まずレイアウト様式一覧(ツールバーの左上端のドロップリスト)から、
447 環境に変更するか、あるいは、単に\SpecialChar TeX
448 コード環境を開いて、Sweaveのコード組を書き込んでください。後者の方法の方が安定していますので、そちらをお勧めします。
451 \begin_layout Standard
460 のようなRオプションもSweaveの出力に便利です。前者のオプションは、出力の幅を調整するものであり、後者は引用符に関してよく起こる問題を回避することができます
461 。詳細については、Rに添付のSweave取扱説明書をお読みください。
464 \begin_layout Standard
468 \begin_layout Plain Layout
470 <<setup, keep.source=TRUE>>=
473 \begin_layout Plain Layout
475 ## オプション「digits」は桁数(の概数)を設定できます
478 \begin_layout Plain Layout
480 options(width = 70, useFancyQuotes = FALSE, digits = 4)
483 \begin_layout Plain Layout
488 \begin_layout Plain Layout
490 <<sweave-manual, eval=FALSE, keep.source=TRUE>>=
493 \begin_layout Plain Layout
495 ## Sweaveのvignetteを見る (要 R >= 2.13.0)
498 \begin_layout Plain Layout
500 vignette("Sweave", package = "utils")
503 \begin_layout Plain Layout
513 \begin_layout Standard
514 下記は、どのSエンジンでも動作する単純な例です。
517 \begin_layout Standard
521 \begin_layout Plain Layout
523 <<print-integers, keep.source=TRUE>>=
526 \begin_layout Plain Layout
531 \begin_layout Plain Layout
536 \begin_layout Plain Layout
541 \begin_layout Plain Layout
543 <<hide-results, results=hide>>=
546 \begin_layout Plain Layout
548 ## results=hide を設定して意図的に出力を隠す
551 \begin_layout Plain Layout
556 \begin_layout Plain Layout
566 \begin_layout Standard
567 単純な計算機をエミュレートすることもできます。
570 \begin_layout Standard
574 \begin_layout Plain Layout
579 \begin_layout Plain Layout
584 \begin_layout Plain Layout
589 \begin_layout Plain Layout
599 \begin_layout Standard
600 今度は、ガウシアンデータを見てみましょう。
603 \begin_layout Standard
607 \begin_layout Plain Layout
612 \begin_layout Plain Layout
614 set.seed(123) # 再現可能性のため
617 \begin_layout Plain Layout
622 \begin_layout Plain Layout
627 \begin_layout Plain Layout
632 \begin_layout Plain Layout
642 \begin_layout Standard
643 数値を標準テキストに簡単に統合させることができます。これは、
649 コマンドによって行われ、\SpecialChar LyX
652 挿入\SpecialChar menuseparator
653 任意設定差込枠\SpecialChar menuseparator
657 コードを使うこともできます。例えば、ベクトル
662 \begin_inset Flex S/R expression
665 \begin_layout Plain Layout
677 \begin_inset Formula $p$
681 \begin_inset Flex S/R expression
684 \begin_layout Plain Layout
686 format.pval(t1$p.value)
695 のようなコマンドを使うことによって丸めることもできます。
698 \begin_layout Standard
729 \begin_layout Standard
733 \begin_layout Plain Layout
738 \begin_layout Plain Layout
743 \begin_layout Plain Layout
753 \begin_layout Standard
754 \begin_inset Float table
759 \begin_layout Plain Layout
760 \begin_inset Caption Standard
762 \begin_layout Plain Layout
768 \begin_inset CommandInset label
770 name "tab:xtable-demo"
782 \begin_layout Plain Layout
787 \begin_layout Plain Layout
791 \begin_layout Plain Layout
793 <<xtable-demo,results=tex,echo=FALSE>>=
796 \begin_layout Plain Layout
798 if (require('xtable')) {
801 \begin_layout Plain Layout
803 print(xtable(sapply(iris[,-5], quantile)), floating=FALSE)
806 \begin_layout Plain Layout
808 } else cat('the xtable package is not available! please install.packages("xtable"
812 \begin_layout Plain Layout
827 \begin_layout Standard
828 通常、人々はこのような「生の」出力を好みませんので、これらのごちゃごちゃした数字を、
832 パッケージを使って綺麗にしてやるといいでしょう。表
833 \begin_inset CommandInset ref
835 reference "tab:xtable-demo"
843 パッケージの使い方を示すための例です。コード組のオプション
851 )で包まれるのではなく、生の\SpecialChar LaTeX
852 コードとして書き出されるように保証するためのものです。
855 \begin_layout Standard
857 \begin_inset CommandInset ref
859 reference "fig:iris-pairs"
864 \begin_inset CommandInset ref
866 reference "fig:iris-boxplots"
870 は、Sweaveを使って画像を生成する簡単な例です。
873 \begin_layout Standard
874 \begin_inset Float figure
879 \begin_layout Plain Layout
881 \begin_inset Note Note
884 \begin_layout Plain Layout
885 epsとpdfの両方をtrueにして、latexとpdflatexの両方を動作するようにすることができます。実際には、おそらく一つを選ぶだけでよいでしょう。
894 \begin_layout Plain Layout
896 <<iris-pairs,fig=TRUE,width=4.5,height=4.5,eps=TRUE,pdf=TRUE>>=
899 \begin_layout Plain Layout
901 pairs(iris, col = iris$Species)
904 \begin_layout Plain Layout
914 \begin_layout Plain Layout
915 \begin_inset Caption Standard
917 \begin_layout Plain Layout
923 \begin_inset CommandInset label
925 name "fig:iris-pairs"
942 \begin_layout Standard
943 \begin_inset Float figure
948 \begin_layout Plain Layout
953 \begin_layout Plain Layout
955 <<iris-boxplots,fig=TRUE,width=7,height=2,keep.source=F,eps=T,pdf=T>>=
958 \begin_layout Plain Layout
960 par(mar=c(4,5,.1,.3), las=1)
963 \begin_layout Plain Layout
965 boxplot(Sepal.Length~Species,data=iris,horizontal=TRUE,xlab='Sepal.Length')
968 \begin_layout Plain Layout
978 \begin_layout Plain Layout
979 \begin_inset Caption Standard
981 \begin_layout Plain Layout
982 種でグループ化された萼片の長さのボックスプロット
983 \begin_inset CommandInset label
985 name "fig:iris-boxplots"
1002 \begin_layout Standard
1003 Sweave文書中のRコードは、単一のRスクリプトとして書きだすことができますが、これは
1010 \begin_layout Section
1018 \begin_layout Standard
1023 モジュールは、\SpecialChar LyX
1024 文書が、Rを使った文芸的プログラミングのコンポーネントを含んでいることを宣言しますので、\SpecialChar LyX
1025 は、そのような文書を取り扱う特定の変換子を使って処理します
1034 変換子を使用しますが、これは、\SpecialChar LyX
1043 が本体になっています。このスクリプトは、\SpecialChar LyX
1048 文書を受け取り、これを\SpecialChar TeX
1049 文書に変換するためにSweaveを呼び出します。その後の作業は、\SpecialChar LyX
1053 \begin_layout Standard
1058 形式から\SpecialChar LaTeX
1059 への変換子は、下記のコマンド行でRを呼び出します。
1062 \begin_layout Standard
1066 \begin_layout Plain Layout
1073 \begin_layout Plain Layout
1075 Rscript --no-save --no-restore $$s/scripts/lyxsweave.R $$p$$i $$p$$o $$e
1079 \begin_layout Plain Layout
1091 \begin_layout Standard
1099 ヘルプ\SpecialChar menuseparator
1103 メニューに記載があります。他にRに渡すことのできるオプションは、Rスクリプト中で説明されており、また、\SpecialChar LyX
1120 についての詳しい説明があります。一般ユーザーは、これらの意味について詳しく知る必要はありませんが、ここでは、Rコードにまつわる若干の問題について説明しておく必要
1124 \begin_layout Enumerate
1126 文書のエンコーディングを表す文字列は、Rにコマンドラインオプションとして渡されます。取り得る値は、
1141 \begin_layout Enumerate
1142 Sweave文書内のRコード組は、\SpecialChar LyX
1143 文書のあるディレクトリで実行されます(自信のない場合は、現在の作業ディレクトリがどこかを見るために、コード組に
1147 を置いてください)。この場合、データファイルは同じディレクトリ下に置くことができ、再現可能性を保証するために、R内部では相対パスを使用してください。すなわち、他
1148 のシステムでは存在しないかもしれない、ハードコードのパスを書く必要はありません。
1151 \begin_layout Enumerate
1157 を検出できないと、このRスクリプトが自動的に
1161 を一時ディレクトリにコピーし、そこで\SpecialChar LaTeX
1165 \begin_layout Enumerate
1166 Sweaveは、既定でRnwファイルのファイル名を、画像出力の接頭辞文字列として使用します。既知の問題の1つ(
1167 \begin_inset CommandInset href
1170 target "http://www.lyx.org/trac/ticket/7551"
1175 )として、ファイル名(拡張子を除く)にピリオドが含まれている場合、\SpecialChar LaTeX
1182 で処理する際に失敗しうるということが知られています。したがって、接頭辞の既定値は、すべてのピリオドを「-」で置換したファイル名にしてあります。この問題は、Swe
1183 aveで直接的に解決することもができます。Sweaveオプションの
1187 を、ピリオドを含まない文字列に設定すると、このオプションが既定値を上書きします。
1190 \begin_layout Standard
1195 オプションが設定されています。このオプションは、Sweaveが下記の2つのパッケージを読み込んでしまうのを防ぎます。
1198 \begin_layout Standard
1202 \begin_layout Plain Layout
1209 \begin_layout Plain Layout
1213 RequirePackage[T1]{fontenc}
1216 \begin_layout Plain Layout
1223 \begin_layout Plain Layout
1235 \begin_layout Standard
1237 は、既定でフォントエンコーディングを取り扱うことができるので、Sweaveにこれをやってもらう必要はないのです(その上、これはパッケージオプションの衝突をもたら
1238 す可能性があります)。一方、ユーザーは、必要ならばプリアンブルで
1242 パッケージを手動で読み込ませることができます。
1245 \begin_layout Section
1249 \begin_layout Standard
1251 2.0以降、コンパイル中の詳細な情報を、
1253 表示\SpecialChar menuseparator
1256 で見ることができるようになりました。これは、問題の解決に非常に役に立ちます。Rの処理は、メッセージパネルに表示され、エラーが発生した場合には、どのコード組がおか
1257 しいのか知ることができます。例えば、この文書をコンパイルする時、以下のようなメッセージを見ることができるでしょう。
1260 \begin_layout Standard
1264 \begin_layout Plain Layout
1271 \begin_layout Plain Layout
1273 17:58:47.868: Processing code chunks with options ...
1276 \begin_layout Plain Layout
1278 17:58:47.885: 1 : echo keep.source term verbatim (label=setup)
1281 \begin_layout Plain Layout
1283 17:58:47.889: 2 : echo keep.source (label=sweave-manual)
1286 \begin_layout Plain Layout
1288 17:58:47.908: 3 : echo keep.source term verbatim (label=print-integers)
1291 \begin_layout Plain Layout
1296 \begin_layout Plain Layout
1298 17:58:47.941: Loading required package: xtable
1301 \begin_layout Plain Layout
1303 17:58:47.976: 9 : echo term verbatim pdf (label=iris-pairs)
1306 \begin_layout Plain Layout
1311 \begin_layout Plain Layout
1313 17:58:48.116: You can now run (pdf)latex on 'sweave.tex'
1316 \begin_layout Plain Layout
1328 \begin_layout Standard
1333 の後の文字列が、コード組のラベルを示します。コード組のどれかがRでエラーを起こせば、即座にここにエラーメッセージを見ることができます。
1336 \begin_layout Standard
1337 もうひとつ知られている問題点は、\SpecialChar LyX
1342 を使用して)手を加えた場合、\SpecialChar LyX
1349 のようなマクロを書き加えてしまうことがあるので、Sweaveコード組がエラーを起こす場合があるという事です。この場合のコード組は、下記のようになってしまいます。
1352 \begin_layout Standard
1356 \begin_layout Plain Layout
1363 \begin_layout Plain Layout
1367 centering{}<<xtable-demo,results=tex,echo=FALSE>>=
1370 \begin_layout Plain Layout
1382 \begin_layout Standard
1387 は行頭すぐに置かれなくてはならないため、これは正しいSweaveコードではありません。したがって、コード組段落の配置に手を加える場合には、
1389 表示\SpecialChar menuseparator
1396 が改行後に現れるようにすることをお勧めします。表
1397 \begin_inset CommandInset ref
1399 reference "tab:xtable-demo"
1403 のコード組に手動で空行が追加されているのは、このためです。
1406 \begin_layout Section
1410 \begin_layout Standard
1412 \begin_inset Flex URL
1415 \begin_layout Plain Layout
1417 http://www.stat.uni-muenchen.de/~leisch/Sweave/
1422 にあります。 The CRAN task view on 「Reproducible Research」にあるCRANタスクビューには、便利と思われるSweav
1424 \begin_inset Flex URL
1427 \begin_layout Plain Layout
1429 http://cran.r-project.org/web/views/ReproducibleResearch.html
1434 をご覧ください。\SpecialChar LyX
1435 とSweaveに関する質問は、\SpecialChar LyX
1437 \begin_inset Flex URL
1440 \begin_layout Plain Layout
1442 http://www.lyx.org/MailingLists
1447 )に投稿してください。さらに多くの\SpecialChar LyX
1449 \begin_inset Flex URL
1452 \begin_layout Plain Layout
1454 https://github.com/yihui/lyx
1462 \begin_layout Section
1466 \begin_layout Subsection
1467 Sweaveをbeamerで使うにはどうすればよいでしょうか
1470 \begin_layout Standard
1471 beamerのスライドでSweaveを使うと、\SpecialChar LyX
1472 では\SpecialChar LaTeX
1473 エラーが発生します。その原因は、生のRコードを含むbeamerフレームのせいです。これを解決するには、通常のフ
1474 レームの代わりに脆弱フレームを使うか、フレーム表題に
1476 挿入\SpecialChar menuseparator
1486 \begin_layout Subsection
1487 Rnw文書をコンパイルするためのRスクリプトを書いてもいいですか
1490 \begin_layout Standard
1495 /scripts/lyxsweave.R
1497 がどのように動作するかを理解する必要がありますので、できればそのRソースコードを読むことをお勧めします(特に、Rがパスをどのように取得し、Rnw文書を取り扱うの
1502 をどのように使っているかを見てください)。その後、カスタマイズした
1510 (ヘルプ\SpecialChar menuseparator
1516 ディレクトリ下に置いてください。\SpecialChar LyX
1529 がユーザーディレクトリで検出されれば、それが使用されます。\SpecialChar LyX
1530 ライブラリディレクトリ下にあるスクリプトを直接ハックしてしまうと、\SpecialChar LyX
1532 れてしまいます(ユーザーディレクトリは影響を受けません)ので、お勧めしません。
1535 \begin_layout Standard
1536 なお、Rの公式Sweaveの他に、Sweaveの代替ツールである
1540 パッケージもサポートされており、対応するモジュール名は