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
81 \paragraph_separation indent
82 \paragraph_indentation default
84 \math_numbering_side default
89 \paperpagestyle default
90 \tracking_changes false
99 \begin_layout Standard
103 \begin_layout Plain Layout
107 SweaveOpts{prefix=TRUE,prefix.string=sweave-prefix,keep.source=FALSE}
115 \begin_layout Standard
119 \begin_layout Plain Layout
123 maxwidth はプリアンブル中で定義されています。文書設定をご覧ください。
126 \begin_layout Plain Layout
150 \begin_layout Plain Layout
152 \begin_inset CommandInset href
154 name "xie@yihui.name"
155 target "xie@yihui.name"
170 \begin_layout Plain Layout
183 \begin_layout Plain Layout
195 \begin_layout Standard
196 Sweaveは、文芸的プログラミングの考えに従った、動的なレポート生成するための、R言語(
197 \begin_inset Flex URL
200 \begin_layout Plain Layout
202 http://www.r-project.org
207 )ツールです。Rコードは、\SpecialChar LaTeX
208 文書の中で混用することができ、文書がコンパイルされるときにRで実行されます。結果は、\SpecialChar TeX
212 \begin_layout Standard
218 モジュールを使えば、どの文書クラスでもSweaveをそのまま使うことができます。
224 文書\SpecialChar menuseparator
225 設定\SpecialChar menuseparator
228 を使用します。この説明書では、Sweaveでよく使われる機能をいくつか紹介し、本モジュールがどう動作するかを説明します。この説明書のPDF版は、
229 \begin_inset Flex URL
232 \begin_layout Plain Layout
234 https://github.com/downloads/yihui/lyx/sweave.pdf
242 \begin_layout Section
246 \begin_layout Standard
255 に依存しますので、このファイルが、システムの
259 変数に含まれるパスになくてはなりません。これは、LinuxやMac OSユーザーには大した問題とならないでしょうが、Windowsユーザーには混乱を招くかもしれ
264 が何かわからない場合には、R言語のリポジトリ
265 \begin_inset Flex URL
268 \begin_layout Plain Layout
270 https://github.com/yihui/lyx
279 を使って、パスを自動的に変更するか(推奨はできません。何にせよ
285 ツール\SpecialChar menuseparator
286 設定\SpecialChar menuseparator
287 パス\SpecialChar menuseparator
290 からRのバイナリパスを追加することができます(推奨)。後者の場合、大抵
302 のような形をしており、R内で下記のようにして確認することができます。
305 \begin_layout Standard
309 \begin_layout Plain Layout
311 <<where-is-R-bin,eval=FALSE>>=
314 \begin_layout Plain Layout
319 \begin_layout Plain Layout
329 \begin_layout Standard
332 ツール\SpecialChar menuseparator
335 を使って、\SpecialChar LyX
348 モジュールを使うことはできません。Sweaveの更新は続いていますので、最新版のRを使用することをお勧めします。Rに同梱され、このパス下にある(CTANにはあり
349 ません)\SpecialChar LaTeX
354 によって、下記のように依存関係が追加されます。
357 \begin_layout Standard
361 \begin_layout Plain Layout
363 <<sweave-sty,eval=FALSE>>=
366 \begin_layout Plain Layout
368 file.path(R.home('share'), 'texmf', 'tex', 'latex')
371 \begin_layout Plain Layout
381 \begin_layout Standard
383 ユーザーは、Mik\SpecialChar TeX
384 の設定で、Mik\SpecialChar TeX
385 のルートディレクトリ一覧にtexmfディレクトリも追加したほうが良いかもしれません。また、
401 あります。\SpecialChar LyX
406 を検出できないときは、直接Rからコピーしますので、このスタイルファイルがどこにあるかわからない場合でも、Sweaveモジュールは動作します。
409 \begin_layout Section
413 \begin_layout Standard
414 Sweave文書を書く前に、Sweaveオプションを設定しましょう。Sweaveの設定コマンドは
420 ですが、これは、\SpecialChar LyX
423 挿入\SpecialChar menuseparator
424 任意設定差込枠\SpecialChar menuseparator
430 挿入\SpecialChar menuseparator
434 )ことで挿入することができます。例えば、文頭で大域オプション
438 を設定して、すべてのRコードを抑制することもできます(既定では、Rコードとその出力は、両方とも\SpecialChar LaTeX
442 \begin_layout Standard
444 でRコードを書くには、まずレイアウト様式一覧(ツールバーの左上端のドロップリスト)から、
448 環境に変更するか、あるいは、単に\SpecialChar TeX
449 コード環境を開いて、Sweaveのコード組を書き込んでください。後者の方法の方が安定していますので、そちらをお勧めします。
452 \begin_layout Standard
461 のようなRオプションもSweaveの出力に便利です。前者のオプションは、出力の幅を調整するものであり、後者は引用符に関してよく起こる問題を回避することができます
462 。詳細については、Rに添付のSweave取扱説明書をお読みください。
465 \begin_layout Standard
469 \begin_layout Plain Layout
471 <<setup, keep.source=TRUE>>=
474 \begin_layout Plain Layout
476 ## オプション「digits」は桁数(の概数)を設定できます
479 \begin_layout Plain Layout
481 options(width = 70, useFancyQuotes = FALSE, digits = 4)
484 \begin_layout Plain Layout
489 \begin_layout Plain Layout
491 <<sweave-manual, eval=FALSE, keep.source=TRUE>>=
494 \begin_layout Plain Layout
496 ## Sweaveのvignetteを見る (要 R >= 2.13.0)
499 \begin_layout Plain Layout
501 vignette("Sweave", package = "utils")
504 \begin_layout Plain Layout
514 \begin_layout Standard
515 下記は、どのSエンジンでも動作する単純な例です。
518 \begin_layout Standard
522 \begin_layout Plain Layout
524 <<print-integers, keep.source=TRUE>>=
527 \begin_layout Plain Layout
532 \begin_layout Plain Layout
537 \begin_layout Plain Layout
542 \begin_layout Plain Layout
544 <<hide-results, results=hide>>=
547 \begin_layout Plain Layout
549 ## results=hide を設定して意図的に出力を隠す
552 \begin_layout Plain Layout
557 \begin_layout Plain Layout
567 \begin_layout Standard
568 単純な計算機をエミュレートすることもできます。
571 \begin_layout Standard
575 \begin_layout Plain Layout
580 \begin_layout Plain Layout
585 \begin_layout Plain Layout
590 \begin_layout Plain Layout
600 \begin_layout Standard
601 今度は、ガウシアンデータを見てみましょう。
604 \begin_layout Standard
608 \begin_layout Plain Layout
613 \begin_layout Plain Layout
615 set.seed(123) # 再現可能性のため
618 \begin_layout Plain Layout
623 \begin_layout Plain Layout
628 \begin_layout Plain Layout
633 \begin_layout Plain Layout
643 \begin_layout Standard
644 数値を標準テキストに簡単に統合させることができます。これは、
650 コマンドによって行われ、\SpecialChar LyX
653 挿入\SpecialChar menuseparator
654 任意設定差込枠\SpecialChar menuseparator
658 コードを使うこともできます。例えば、ベクトル
663 \begin_inset Flex S/R expression
666 \begin_layout Plain Layout
678 \begin_inset Formula $p$
682 \begin_inset Flex S/R expression
685 \begin_layout Plain Layout
687 format.pval(t1$p.value)
696 のようなコマンドを使うことによって丸めることもできます。
699 \begin_layout Standard
730 \begin_layout Standard
734 \begin_layout Plain Layout
739 \begin_layout Plain Layout
744 \begin_layout Plain Layout
754 \begin_layout Standard
755 \begin_inset Float table
760 \begin_layout Plain Layout
761 \begin_inset Caption Standard
763 \begin_layout Plain Layout
769 \begin_inset CommandInset label
771 name "tab:xtable-demo"
783 \begin_layout Plain Layout
788 \begin_layout Plain Layout
792 \begin_layout Plain Layout
794 <<xtable-demo,results=tex,echo=FALSE>>=
797 \begin_layout Plain Layout
799 if (require('xtable')) {
802 \begin_layout Plain Layout
804 print(xtable(sapply(iris[,-5], quantile)), floating=FALSE)
807 \begin_layout Plain Layout
809 } else cat('the xtable package is not available! please install.packages("xtable"
813 \begin_layout Plain Layout
828 \begin_layout Standard
829 通常、人々はこのような「生の」出力を好みませんので、これらのごちゃごちゃした数字を、
833 パッケージを使って綺麗にしてやるといいでしょう。表
834 \begin_inset CommandInset ref
836 reference "tab:xtable-demo"
844 パッケージの使い方を示すための例です。コード組のオプション
852 )で包まれるのではなく、生の\SpecialChar LaTeX
853 コードとして書き出されるように保証するためのものです。
856 \begin_layout Standard
858 \begin_inset CommandInset ref
860 reference "fig:iris-pairs"
865 \begin_inset CommandInset ref
867 reference "fig:iris-boxplots"
871 は、Sweaveを使って画像を生成する簡単な例です。
874 \begin_layout Standard
875 \begin_inset Float figure
880 \begin_layout Plain Layout
882 \begin_inset Note Note
885 \begin_layout Plain Layout
886 epsとpdfの両方をtrueにして、latexとpdflatexの両方を動作するようにすることができます。実際には、おそらく一つを選ぶだけでよいでしょう。
895 \begin_layout Plain Layout
897 <<iris-pairs,fig=TRUE,width=4.5,height=4.5,eps=TRUE,pdf=TRUE>>=
900 \begin_layout Plain Layout
902 pairs(iris, col = iris$Species)
905 \begin_layout Plain Layout
915 \begin_layout Plain Layout
916 \begin_inset Caption Standard
918 \begin_layout Plain Layout
924 \begin_inset CommandInset label
926 name "fig:iris-pairs"
943 \begin_layout Standard
944 \begin_inset Float figure
949 \begin_layout Plain Layout
954 \begin_layout Plain Layout
956 <<iris-boxplots,fig=TRUE,width=7,height=2,keep.source=F,eps=T,pdf=T>>=
959 \begin_layout Plain Layout
961 par(mar=c(4,5,.1,.3), las=1)
964 \begin_layout Plain Layout
966 boxplot(Sepal.Length~Species,data=iris,horizontal=TRUE,xlab='Sepal.Length')
969 \begin_layout Plain Layout
979 \begin_layout Plain Layout
980 \begin_inset Caption Standard
982 \begin_layout Plain Layout
983 種でグループ化された萼片の長さのボックスプロット
984 \begin_inset CommandInset label
986 name "fig:iris-boxplots"
1003 \begin_layout Standard
1004 Sweave文書中のRコードは、単一のRスクリプトとして書きだすことができますが、これは
1011 \begin_layout Section
1019 \begin_layout Standard
1024 モジュールは、\SpecialChar LyX
1025 文書が、Rを使った文芸的プログラミングのコンポーネントを含んでいることを宣言しますので、\SpecialChar LyX
1026 は、そのような文書を取り扱う特定の変換子を使って処理します
1035 変換子を使用しますが、これは、\SpecialChar LyX
1044 が本体になっています。このスクリプトは、\SpecialChar LyX
1049 文書を受け取り、これを\SpecialChar TeX
1050 文書に変換するためにSweaveを呼び出します。その後の作業は、\SpecialChar LyX
1054 \begin_layout Standard
1059 形式から\SpecialChar LaTeX
1060 への変換子は、下記のコマンド行でRを呼び出します。
1063 \begin_layout Standard
1067 \begin_layout Plain Layout
1074 \begin_layout Plain Layout
1076 Rscript --no-save --no-restore $$s/scripts/lyxsweave.R $$p$$i $$p$$o $$e
1080 \begin_layout Plain Layout
1092 \begin_layout Standard
1100 ヘルプ\SpecialChar menuseparator
1104 メニューに記載があります。他にRに渡すことのできるオプションは、Rスクリプト中で説明されており、また、\SpecialChar LyX
1121 についての詳しい説明があります。一般ユーザーは、これらの意味について詳しく知る必要はありませんが、ここでは、Rコードにまつわる若干の問題について説明しておく必要
1125 \begin_layout Enumerate
1127 文書のエンコーディングを表す文字列は、Rにコマンドラインオプションとして渡されます。取り得る値は、
1142 \begin_layout Enumerate
1143 Sweave文書内のRコード組は、\SpecialChar LyX
1144 文書のあるディレクトリで実行されます(自信のない場合は、現在の作業ディレクトリがどこかを見るために、コード組に
1148 を置いてください)。この場合、データファイルは同じディレクトリ下に置くことができ、再現可能性を保証するために、R内部では相対パスを使用してください。すなわち、他
1149 のシステムでは存在しないかもしれない、ハードコードのパスを書く必要はありません。
1152 \begin_layout Enumerate
1158 を検出できないと、このRスクリプトが自動的に
1162 を一時ディレクトリにコピーし、そこで\SpecialChar LaTeX
1166 \begin_layout Enumerate
1167 Sweaveは、既定でRnwファイルのファイル名を、画像出力の接頭辞文字列として使用します。既知の問題の1つ(
1168 \begin_inset CommandInset href
1171 target "https://www.lyx.org/trac/ticket/7551"
1176 )として、ファイル名(拡張子を除く)にピリオドが含まれている場合、\SpecialChar LaTeX
1183 で処理する際に失敗しうるということが知られています。したがって、接頭辞の既定値は、すべてのピリオドを「-」で置換したファイル名にしてあります。この問題は、Swe
1184 aveで直接的に解決することもができます。Sweaveオプションの
1188 を、ピリオドを含まない文字列に設定すると、このオプションが既定値を上書きします。
1191 \begin_layout Standard
1196 オプションが設定されています。このオプションは、Sweaveが下記の2つのパッケージを読み込んでしまうのを防ぎます。
1199 \begin_layout Standard
1203 \begin_layout Plain Layout
1210 \begin_layout Plain Layout
1214 RequirePackage[T1]{fontenc}
1217 \begin_layout Plain Layout
1224 \begin_layout Plain Layout
1236 \begin_layout Standard
1238 は、既定でフォントエンコーディングを取り扱うことができるので、Sweaveにこれをやってもらう必要はないのです(その上、これはパッケージオプションの衝突をもたら
1239 す可能性があります)。一方、ユーザーは、必要ならばプリアンブルで
1243 パッケージを手動で読み込ませることができます。
1246 \begin_layout Section
1250 \begin_layout Standard
1252 2.0以降、コンパイル中の詳細な情報を、
1254 表示\SpecialChar menuseparator
1257 で見ることができるようになりました。これは、問題の解決に非常に役に立ちます。Rの処理は、メッセージパネルに表示され、エラーが発生した場合には、どのコード組がおか
1258 しいのか知ることができます。例えば、この文書をコンパイルする時、以下のようなメッセージを見ることができるでしょう。
1261 \begin_layout Standard
1265 \begin_layout Plain Layout
1272 \begin_layout Plain Layout
1274 17:58:47.868: Processing code chunks with options ...
1277 \begin_layout Plain Layout
1279 17:58:47.885: 1 : echo keep.source term verbatim (label=setup)
1282 \begin_layout Plain Layout
1284 17:58:47.889: 2 : echo keep.source (label=sweave-manual)
1287 \begin_layout Plain Layout
1289 17:58:47.908: 3 : echo keep.source term verbatim (label=print-integers)
1292 \begin_layout Plain Layout
1297 \begin_layout Plain Layout
1299 17:58:47.941: Loading required package: xtable
1302 \begin_layout Plain Layout
1304 17:58:47.976: 9 : echo term verbatim pdf (label=iris-pairs)
1307 \begin_layout Plain Layout
1312 \begin_layout Plain Layout
1314 17:58:48.116: You can now run (pdf)latex on 'sweave.tex'
1317 \begin_layout Plain Layout
1329 \begin_layout Standard
1334 の後の文字列が、コード組のラベルを示します。コード組のどれかがRでエラーを起こせば、即座にここにエラーメッセージを見ることができます。
1337 \begin_layout Standard
1338 もうひとつ知られている問題点は、\SpecialChar LyX
1343 を使用して)手を加えた場合、\SpecialChar LyX
1350 のようなマクロを書き加えてしまうことがあるので、Sweaveコード組がエラーを起こす場合があるという事です。この場合のコード組は、下記のようになってしまいます。
1353 \begin_layout Standard
1357 \begin_layout Plain Layout
1364 \begin_layout Plain Layout
1368 centering{}<<xtable-demo,results=tex,echo=FALSE>>=
1371 \begin_layout Plain Layout
1383 \begin_layout Standard
1388 は行頭すぐに置かれなくてはならないため、これは正しいSweaveコードではありません。したがって、コード組段落の配置に手を加える場合には、
1390 表示\SpecialChar menuseparator
1397 が改行後に現れるようにすることをお勧めします。表
1398 \begin_inset CommandInset ref
1400 reference "tab:xtable-demo"
1404 のコード組に手動で空行が追加されているのは、このためです。
1407 \begin_layout Section
1411 \begin_layout Standard
1412 The user manual of Sweave is at
1413 \begin_inset Flex URL
1416 \begin_layout Plain Layout
1418 https://stat.ethz.ch/R-manual/R-devel/library/utils/doc/Sweave.pdf
1423 にあります。 The CRAN task view on 「Reproducible Research」にあるCRANタスクビューには、便利と思われるSweav
1425 \begin_inset Flex URL
1428 \begin_layout Plain Layout
1430 http://cran.r-project.org/web/views/ReproducibleResearch.html
1435 をご覧ください。\SpecialChar LyX
1436 とSweaveに関する質問は、\SpecialChar LyX
1438 \begin_inset Flex URL
1441 \begin_layout Plain Layout
1443 https://www.lyx.org/MailingLists
1448 )に投稿してください。さらに多くの\SpecialChar LyX
1450 \begin_inset Flex URL
1453 \begin_layout Plain Layout
1455 https://github.com/yihui/lyx
1463 \begin_layout Section
1467 \begin_layout Subsection
1468 Sweaveをbeamerで使うにはどうすればよいでしょうか
1471 \begin_layout Standard
1472 beamerのスライドでSweaveを使うと、\SpecialChar LyX
1473 では\SpecialChar LaTeX
1474 エラーが発生します。その原因は、生のRコードを含むbeamerフレームのせいです。これを解決するには、通常のフ
1475 レームの代わりに脆弱フレームを使うか、フレーム表題に
1477 挿入\SpecialChar menuseparator
1487 \begin_layout Subsection
1488 Rnw文書をコンパイルするためのRスクリプトを書いてもいいですか
1491 \begin_layout Standard
1496 /scripts/lyxsweave.R
1498 がどのように動作するかを理解する必要がありますので、できればそのRソースコードを読むことをお勧めします(特に、Rがパスをどのように取得し、Rnw文書を取り扱うの
1503 をどのように使っているかを見てください)。その後、カスタマイズした
1511 (ヘルプ\SpecialChar menuseparator
1517 ディレクトリ下に置いてください。\SpecialChar LyX
1530 がユーザーディレクトリで検出されれば、それが使用されます。\SpecialChar LyX
1531 ライブラリディレクトリ下にあるスクリプトを直接ハックしてしまうと、\SpecialChar LyX
1533 れてしまいます(ユーザーディレクトリは影響を受けません)ので、お勧めしません。
1536 \begin_layout Standard
1537 なお、Rの公式Sweaveの他に、Sweaveの代替ツールである
1541 パッケージもサポートされており、対応するモジュール名は