1 #LyX 2.4 created this file. For more info see https://www.lyx.org/
5 \save_transient_properties true
6 \origin /systemlyxdir/examples/ja/Modules/
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 no
26 \language_package none
29 \font_roman "palatino" "IPAexMincho"
30 \font_sans "default" "IPAexGothic"
31 \font_typewriter "default" "IPAGothic"
32 \font_math "auto" "auto"
33 \font_default_family default
34 \use_non_tex_fonts true
38 \font_typewriter_osf false
39 \font_sf_scale 100 100
40 \font_tt_scale 100 100
42 \use_dash_ligatures false
44 \default_output_format default
46 \bibtex_command default
47 \index_command default
48 \paperfontsize default
53 \use_package amsmath 1
54 \use_package amssymb 1
57 \use_package mathdots 1
58 \use_package mathtools 1
60 \use_package stackrel 1
61 \use_package stmaryrd 1
62 \use_package undertilde 1
64 \cite_engine_type default
68 \paperorientation portrait
84 \paragraph_separation indent
85 \paragraph_indentation default
87 \math_numbering_side default
92 \paperpagestyle default
94 \tracking_changes false
97 \postpone_fragile_content false
100 \html_be_strict false
101 \docbook_table_output 0
102 \docbook_mathml_prefix 1
107 \begin_layout Standard
111 \begin_layout Plain Layout
115 SweaveOpts{prefix=TRUE,prefix.string=sweave-prefix,keep.source=FALSE}
123 \begin_layout Standard
127 \begin_layout Plain Layout
131 maxwidth はプリアンブル中で定義されています。
136 \begin_layout Plain Layout
160 \begin_layout Plain Layout
163 \begin_inset CommandInset href
165 name "xie@yihui.name"
166 target "xie@yihui.name"
181 \begin_layout Plain Layout
194 \begin_layout Plain Layout
206 \begin_layout Standard
207 Sweaveは、文芸的プログラミングの考えに従った、動的なレポート生成するための、R言語(
208 \begin_inset Flex URL
211 \begin_layout Plain Layout
213 http://www.r-project.org
219 Rコードは、\SpecialChar LaTeX
220 文書の中で混用することができ、文書がコンパイルされるときにRで実行されます。
226 \begin_layout Standard
232 モジュールを使えば、どの文書クラスでもSweaveをそのまま使うことができます。
239 文書\SpecialChar menuseparator
240 設定\SpecialChar menuseparator
244 この説明書では、Sweaveでよく使われる機能をいくつか紹介し、本モジュールがどう動作するかを説明します。
246 \begin_inset Flex URL
249 \begin_layout Plain Layout
251 https://github.com/downloads/yihui/lyx/sweave.pdf
260 \begin_layout Section
264 \begin_layout Standard
273 に依存しますので、このファイルが、システムの
278 これは、LinuxやMac OSユーザーには大した問題とならないでしょうが、Windowsユーザーには混乱を招くかもしれません。
283 が何かわからない場合には、R言語のリポジトリ
284 \begin_inset Flex URL
287 \begin_layout Plain Layout
289 https://github.com/yihui/lyx
298 を使って、パスを自動的に変更するか(推奨はできません。
305 ツール\SpecialChar menuseparator
306 設定\SpecialChar menuseparator
307 パス\SpecialChar menuseparator
310 からRのバイナリパスを追加することができます(推奨)。
323 のような形をしており、R内で下記のようにして確認することができます。
327 \begin_layout Standard
328 \begin_inset Flex Chunk
331 \begin_layout Plain Layout
333 \begin_inset Argument 1
336 \begin_layout Plain Layout
338 where-is-R-bin,eval=FALSE
346 \begin_layout Plain Layout
356 \begin_layout Standard
359 ツール\SpecialChar menuseparator
362 を使って、\SpecialChar LyX
377 Sweaveの更新は続いていますので、最新版のRを使用することをお勧めします。
378 Rに同梱され、このパス下にある(CTANにはありません)\SpecialChar LaTeX
383 によって、下記のように依存関係が追加されます。
387 \begin_layout Standard
388 \begin_inset Flex Chunk
391 \begin_layout Plain Layout
393 \begin_inset Argument 1
396 \begin_layout Plain Layout
398 sweave-sty,eval=FALSE
406 \begin_layout Plain Layout
408 file.path(R.home('share'),
419 \begin_layout Standard
421 ユーザーは、Mik\SpecialChar TeX
422 の設定で、Mik\SpecialChar TeX
423 のルートディレクトリ一覧にtexmfディレクトリも追加したほうが良いかもしれません。
446 を検出できないときは、直接Rからコピーしますので、このスタイルファイルがどこにあるかわからない場合でも、Sweaveモジュールは動作します。
450 \begin_layout Section
454 \begin_layout Standard
455 Sweave文書を書く前に、Sweaveオプションを設定しましょう。
462 ですが、これは、\SpecialChar LyX
465 挿入\SpecialChar menuseparator
466 任意設定差込枠\SpecialChar menuseparator
472 挿入\SpecialChar menuseparator
481 を設定して、すべてのRコードを抑制することもできます(既定では、Rコードとその出力は、両方とも\SpecialChar LaTeX
486 \begin_layout Standard
488 でRコードを書くには、まずレイアウト様式一覧(ツールバーの左上端のドロップリスト)から、
492 環境に変更するか、あるいは、単に\SpecialChar TeX
493 コード環境を開いて、Sweaveのコード組を書き込んでください。
494 後者の方法の方が安定していますので、そちらをお勧めします。
498 \begin_layout Standard
507 のようなRオプションもSweaveの出力に便利です。
508 前者のオプションは、出力の幅を調整するものであり、後者は引用符に関してよく起こる問題を回避することができます。
509 詳細については、Rに添付のSweave取扱説明書をお読みください。
513 \begin_layout Standard
514 \begin_inset Flex Chunk
517 \begin_layout Plain Layout
519 \begin_inset Argument 1
522 \begin_layout Plain Layout
533 \begin_layout Plain Layout
535 ## オプション「digits」は桁数(の概数)を設定できます
538 \begin_layout Plain Layout
541 useFancyQuotes = FALSE,
550 \begin_layout Standard
551 \begin_inset Flex Chunk
554 \begin_layout Plain Layout
556 \begin_inset Argument 1
559 \begin_layout Plain Layout
571 \begin_layout Plain Layout
573 ## Sweaveのvignetteを見る (要 R >= 2.13.0)
576 \begin_layout Plain Layout
584 下記は、どのSエンジンでも動作する単純な例です。
588 \begin_layout Standard
589 \begin_inset Flex Chunk
592 \begin_layout Plain Layout
594 \begin_inset Argument 1
597 \begin_layout Plain Layout
608 \begin_layout Plain Layout
613 \begin_layout Plain Layout
623 \begin_layout Standard
624 \begin_inset Flex Chunk
627 \begin_layout Plain Layout
629 \begin_inset Argument 1
632 \begin_layout Plain Layout
643 \begin_layout Plain Layout
645 ## results=hide を設定して意図的に出力を隠す
648 \begin_layout Plain Layout
655 単純な計算機をエミュレートすることもできます。
659 \begin_layout Standard
660 \begin_inset Flex Chunk
663 \begin_layout Plain Layout
665 \begin_inset Argument 1
668 \begin_layout Plain Layout
678 \begin_layout Plain Layout
683 \begin_layout Plain Layout
693 \begin_layout Standard
694 今度は、ガウシアンデータを見てみましょう。
698 \begin_layout Standard
699 \begin_inset Flex Chunk
702 \begin_layout Plain Layout
704 \begin_inset Argument 1
707 \begin_layout Plain Layout
717 \begin_layout Plain Layout
719 set.seed(123) # 再現可能性のため
722 \begin_layout Plain Layout
727 \begin_layout Plain Layout
732 \begin_layout Plain Layout
742 \begin_layout Standard
743 数値を標準テキストに簡単に統合させることができます。
750 コマンドによって行われ、\SpecialChar LyX
753 挿入\SpecialChar menuseparator
754 任意設定差込枠\SpecialChar menuseparator
764 \begin_inset Flex S/R expression
767 \begin_layout Plain Layout
779 \begin_inset Formula $p$
783 \begin_inset Flex S/R expression
786 \begin_layout Plain Layout
788 format.pval(t1$p.value)
798 のようなコマンドを使うことによって丸めることもできます。
802 \begin_layout Standard
834 \begin_layout Standard
835 \begin_inset Flex Chunk
838 \begin_layout Plain Layout
840 \begin_inset Argument 1
843 \begin_layout Plain Layout
853 \begin_layout Plain Layout
863 \begin_layout Standard
864 \begin_inset Float table
871 \begin_layout Plain Layout
872 \begin_inset Caption Standard
874 \begin_layout Plain Layout
880 \begin_inset CommandInset label
882 name "tab:xtable-demo"
894 \begin_layout Plain Layout
896 \begin_inset Flex Chunk
899 \begin_layout Plain Layout
901 \begin_inset Argument 1
904 \begin_layout Plain Layout
906 xtable-demo,results=tex,echo=FALSE
914 \begin_layout Plain Layout
916 if (require('xtable')) {
919 \begin_layout Plain Layout
921 print(xtable(sapply(iris[,-5],
926 \begin_layout Plain Layout
928 } else cat('the xtable package is not available!
929 please install.packages("xtable")')
942 \begin_layout Standard
943 通常、人々はこのような「生の」出力を好みませんので、これらのごちゃごちゃした数字を、
947 パッケージを使って綺麗にしてやるといいでしょう。
949 \begin_inset CommandInset ref
951 reference "tab:xtable-demo"
969 )で包まれるのではなく、生の\SpecialChar LaTeX
970 コードとして書き出されるように保証するためのものです。
974 \begin_layout Standard
976 \begin_inset CommandInset ref
978 reference "fig:iris-pairs"
984 \begin_inset CommandInset ref
986 reference "fig:iris-boxplots"
991 は、Sweaveを使って画像を生成する簡単な例です。
995 \begin_layout Standard
996 \begin_inset Float figure
1003 \begin_layout Plain Layout
1005 \begin_inset Note Note
1008 \begin_layout Plain Layout
1009 epsとpdfの両方をtrueにして、latexとpdflatexの両方を動作するようにすることができます。
1010 実際には、おそらく一つを選ぶだけでよいでしょう。
1017 \begin_inset Flex Chunk
1020 \begin_layout Plain Layout
1022 \begin_inset Argument 1
1025 \begin_layout Plain Layout
1027 iris-pairs,fig=TRUE,width=4.5,height=4.5,eps=TRUE,pdf=TRUE
1035 \begin_layout Plain Layout
1046 \begin_layout Plain Layout
1047 \begin_inset Caption Standard
1049 \begin_layout Plain Layout
1055 \begin_inset CommandInset label
1057 name "fig:iris-pairs"
1074 \begin_layout Standard
1075 \begin_inset Float figure
1082 \begin_layout Plain Layout
1084 \begin_inset Flex Chunk
1087 \begin_layout Plain Layout
1089 \begin_inset Argument 1
1092 \begin_layout Plain Layout
1094 iris-boxplots,fig=TRUE,width=7,height=2,keep.source=F,eps=T,pdf=T
1102 \begin_layout Plain Layout
1104 par(mar=c(4,5,.1,.3),
1108 \begin_layout Plain Layout
1110 boxplot(Sepal.Length~Species,data=iris,horizontal=TRUE,xlab='Sepal.Length')
1118 \begin_layout Plain Layout
1119 \begin_inset Caption Standard
1121 \begin_layout Plain Layout
1122 種でグループ化された萼片の長さのボックスプロット
1123 \begin_inset CommandInset label
1125 name "fig:iris-boxplots"
1142 \begin_layout Standard
1143 Sweave文書中のRコードは、単一のRスクリプトとして書きだすことができますが、これは
1151 \begin_layout Section
1159 \begin_layout Standard
1164 モジュールは、\SpecialChar LyX
1165 文書が、Rを使った文芸的プログラミングのコンポーネントを含んでいることを宣言しますので、\SpecialChar LyX
1166 は、そのような文書を取り扱う特定の変換子を使って処理します(取扱説明書カスタマイズ篇参照)。
1175 変換子を使用しますが、これは、\SpecialChar LyX
1185 このスクリプトは、\SpecialChar LyX
1190 文書を受け取り、これを\SpecialChar TeX
1191 文書に変換するためにSweaveを呼び出します。
1192 その後の作業は、\SpecialChar LyX
1197 \begin_layout Standard
1202 形式から\SpecialChar LaTeX
1203 への変換子は、下記のコマンド行でRを呼び出します。
1207 \begin_layout Standard
1211 \begin_layout Plain Layout
1218 \begin_layout Plain Layout
1220 Rscript --no-save --no-restore $$s/scripts/lyxsweave.R $$p$$i $$p$$o $$e $$r
1223 \begin_layout Plain Layout
1235 \begin_layout Standard
1243 ヘルプ\SpecialChar menuseparator
1248 他にRに渡すことのできるオプションは、Rスクリプト中で説明されており、また、\SpecialChar LyX
1266 一般ユーザーは、これらの意味について詳しく知る必要はありませんが、ここでは、Rコードにまつわる若干の問題について説明しておく必要があります。
1270 \begin_layout Enumerate
1272 文書のエンコーディングを表す文字列は、Rにコマンドラインオプションとして渡されます。
1290 \begin_layout Enumerate
1291 Sweave文書内のRコード組は、\SpecialChar LyX
1292 文書のあるディレクトリで実行されます(自信のない場合は、現在の作業ディレクトリがどこかを見るために、コード組に
1297 この場合、データファイルは同じディレクトリ下に置くことができ、再現可能性を保証するために、R内部では相対パスを使用してください。
1298 すなわち、他のシステムでは存在しないかもしれない、ハードコードのパスを書く必要はありません。
1302 \begin_layout Enumerate
1308 を検出できないと、このRスクリプトが自動的に
1312 を一時ディレクトリにコピーし、そこで\SpecialChar LaTeX
1317 \begin_layout Enumerate
1318 Sweaveは、既定でRnwファイルのファイル名を、画像出力の接頭辞文字列として使用します。
1320 \begin_inset CommandInset href
1323 target "https://www.lyx.org/trac/ticket/7551"
1328 )として、ファイル名(拡張子を除く)にピリオドが含まれている場合、\SpecialChar LaTeX
1335 で処理する際に失敗しうるということが知られています。
1336 したがって、接頭辞の既定値は、すべてのピリオドを「-」で置換したファイル名にしてあります。
1337 この問題は、Sweaveで直接的に解決することもができます。
1342 を、ピリオドを含まない文字列に設定すると、このオプションが既定値を上書きします。
1346 \begin_layout Standard
1352 このオプションは、Sweaveが下記の2つのパッケージを読み込んでしまうのを防ぎます。
1356 \begin_layout Standard
1360 \begin_layout Plain Layout
1367 \begin_layout Plain Layout
1371 RequirePackage[T1]{fontenc}
1374 \begin_layout Plain Layout
1381 \begin_layout Plain Layout
1393 \begin_layout Standard
1395 は、既定でフォントエンコーディングを取り扱うことができるので、Sweaveにこれをやってもらう必要はないのです(その上、これはパッケージオプションの衝突をもたらす可能性があります)。
1396 一方、ユーザーは、必要ならばプリアンブルで
1400 パッケージを手動で読み込ませることができます。
1404 \begin_layout Section
1408 \begin_layout Standard
1410 2.0以降、コンパイル中の詳細な情報を、
1412 表示\SpecialChar menuseparator
1416 これは、問題の解決に非常に役に立ちます。
1417 Rの処理は、メッセージパネルに表示され、エラーが発生した場合には、どのコード組がおかしいのか知ることができます。
1418 例えば、この文書をコンパイルする時、以下のようなメッセージを見ることができるでしょう。
1422 \begin_layout Standard
1426 \begin_layout Plain Layout
1433 \begin_layout Plain Layout
1436 Processing code chunks with options ...
1439 \begin_layout Plain Layout
1443 echo keep.source term verbatim (label=setup)
1446 \begin_layout Plain Layout
1450 echo keep.source (label=sweave-manual)
1453 \begin_layout Plain Layout
1457 echo keep.source term verbatim (label=print-integers)
1460 \begin_layout Plain Layout
1465 \begin_layout Plain Layout
1468 Loading required package:
1472 \begin_layout Plain Layout
1476 echo term verbatim pdf (label=iris-pairs)
1479 \begin_layout Plain Layout
1484 \begin_layout Plain Layout
1487 You can now run (pdf)latex on 'sweave.tex'
1490 \begin_layout Plain Layout
1502 \begin_layout Standard
1507 の後の文字列が、コード組のラベルを示します。
1508 コード組のどれかがRでエラーを起こせば、即座にここにエラーメッセージを見ることができます。
1512 \begin_layout Standard
1513 もうひとつ知られている問題点は、\SpecialChar LyX
1518 を使用して)手を加えた場合、\SpecialChar LyX
1525 のようなマクロを書き加えてしまうことがあるので、Sweaveコード組がエラーを起こす場合があるという事です。
1526 この場合のコード組は、下記のようになってしまいます。
1530 \begin_layout Standard
1534 \begin_layout Plain Layout
1541 \begin_layout Plain Layout
1545 centering{}<<xtable-demo,results=tex,echo=FALSE>>=
1548 \begin_layout Plain Layout
1560 \begin_layout Standard
1565 は行頭すぐに置かれなくてはならないため、これは正しいSweaveコードではありません。
1566 したがって、コード組段落の配置に手を加える場合には、
1568 表示\SpecialChar menuseparator
1575 が改行後に現れるようにすることをお勧めします。
1577 \begin_inset CommandInset ref
1579 reference "tab:xtable-demo"
1584 のコード組に手動で空行が追加されているのは、このためです。
1588 \begin_layout Section
1592 \begin_layout Standard
1594 \begin_inset Flex URL
1597 \begin_layout Plain Layout
1599 https://stat.ethz.ch/R-manual/R-devel/library/utils/doc/Sweave.pdf
1605 「Reproducible Research」にあるCRANタスクビューには、便利と思われるSweave関連パッケージの一覧があります。
1607 \begin_inset Flex URL
1610 \begin_layout Plain Layout
1612 http://cran.r-project.org/web/views/ReproducibleResearch.html
1619 とSweaveに関する質問は、\SpecialChar LyX
1621 \begin_inset Flex URL
1624 \begin_layout Plain Layout
1626 https://www.lyx.org/MailingLists
1632 さらに多くの\SpecialChar LyX
1634 \begin_inset Flex URL
1637 \begin_layout Plain Layout
1639 https://github.com/yihui/lyx
1648 \begin_layout Section
1652 \begin_layout Subsection
1653 Sweaveをbeamerで使うにはどうすればよいでしょうか
1656 \begin_layout Standard
1657 beamerのスライドでSweaveを使うと、\SpecialChar LyX
1658 では\SpecialChar LaTeX
1660 その原因は、生のRコードを含むbeamerフレームのせいです。
1661 これを解決するには、通常のフレームの代わりに脆弱フレームを使うか、フレーム表題に
1663 挿入\SpecialChar menuseparator
1674 \begin_layout Subsection
1675 Rnw文書をコンパイルするためのRスクリプトを書いてもいいですか
1678 \begin_layout Standard
1684 /scripts/lyxsweave.R
1686 がどのように動作するかを理解する必要がありますので、できればそのRソースコードを読むことをお勧めします(特に、Rがパスをどのように取得し、Rnw文書を取り扱うのに
1690 をどのように使っているかを見てください)。
1699 (ヘルプ\SpecialChar menuseparator
1719 がユーザーディレクトリで検出されれば、それが使用されます。
1721 ライブラリディレクトリ下にあるスクリプトを直接ハックしてしまうと、\SpecialChar LyX
1722 更新時に修正したスクリプトが上書きされてしまいます(ユーザーディレクトリは影響を受けません)ので、お勧めしません。
1726 \begin_layout Standard
1727 なお、Rの公式Sweaveの他に、Sweaveの代替ツールである
1731 パッケージもサポートされており、対応するモジュール名は