]> git.lyx.org Git - lyx.git/blob - lib/examples/ja/Modules/Sweave.lyx
Update sk.po
[lyx.git] / lib / examples / ja / Modules / Sweave.lyx
1 #LyX 2.4 created this file. For more info see https://www.lyx.org/
2 \lyxformat 620
3 \begin_document
4 \begin_header
5 \save_transient_properties true
6 \origin /systemlyxdir/examples/ja/Modules/
7 \textclass bxjsarticle
8 \begin_preamble
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)
11 \def\maxwidth{%
12 \ifdim\Gin@nat@width>\linewidth
13 \linewidth
14 \else
15 \Gin@nat@width
16 \fi
17 }
18 \end_preamble
19 \options nogin
20 \use_default_options true
21 \begin_modules
22 sweave
23 \end_modules
24 \maintain_unincluded_children no
25 \language japanese
26 \language_package none
27 \inputencoding utf8
28 \fontencoding auto
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
35 \font_sc false
36 \font_roman_osf false
37 \font_sans_osf false
38 \font_typewriter_osf false
39 \font_sf_scale 100 100
40 \font_tt_scale 100 100
41 \use_microtype false
42 \use_dash_ligatures false
43 \graphics default
44 \default_output_format default
45 \output_sync 0
46 \bibtex_command default
47 \index_command default
48 \paperfontsize default
49 \spacing single
50 \use_hyperref false
51 \papersize default
52 \use_geometry true
53 \use_package amsmath 1
54 \use_package amssymb 1
55 \use_package cancel 1
56 \use_package esint 1
57 \use_package mathdots 1
58 \use_package mathtools 1
59 \use_package mhchem 1
60 \use_package stackrel 1
61 \use_package stmaryrd 1
62 \use_package undertilde 1
63 \cite_engine basic
64 \cite_engine_type default
65 \biblio_style plain
66 \use_bibtopic false
67 \use_indices false
68 \paperorientation portrait
69 \suppress_date false
70 \justification true
71 \use_refstyle 0
72 \use_minted 0
73 \use_lineno 0
74 \index Index
75 \shortcut idx
76 \color #008000
77 \end_index
78 \leftmargin 3cm
79 \topmargin 3cm
80 \rightmargin 3cm
81 \bottommargin 3cm
82 \secnumdepth 3
83 \tocdepth 3
84 \paragraph_separation indent
85 \paragraph_indentation default
86 \is_math_indent 0
87 \math_numbering_side default
88 \quotes_style english
89 \dynamic_quotes 0
90 \papercolumns 1
91 \papersides 1
92 \paperpagestyle default
93 \tablestyle default
94 \tracking_changes false
95 \output_changes false
96 \change_bars false
97 \postpone_fragile_content false
98 \html_math_output 0
99 \html_css_as_file 0
100 \html_be_strict false
101 \docbook_table_output 0
102 \docbook_mathml_prefix 1
103 \end_header
104
105 \begin_body
106
107 \begin_layout Standard
108 \begin_inset ERT
109 status open
110
111 \begin_layout Plain Layout
112
113 %
114 \backslash
115 SweaveOpts{prefix=TRUE,prefix.string=sweave-prefix,keep.source=FALSE}
116 \end_layout
117
118 \end_inset
119
120
121 \end_layout
122
123 \begin_layout Standard
124 \begin_inset ERT
125 status open
126
127 \begin_layout Plain Layout
128
129 %% 
130 \backslash
131 maxwidth はプリアンブル中で定義されています。
132 文書設定をご覧ください。
133
134 \end_layout
135
136 \begin_layout Plain Layout
137
138
139 \backslash
140 setkeys{Gin}{width=
141 \backslash
142 maxwidth}
143 \end_layout
144
145 \end_inset
146
147
148 \end_layout
149
150 \begin_layout Title
151 \SpecialChar LyX
152 でSweaveを使うには
153 \end_layout
154
155 \begin_layout Author
156 Yihui Xie
157 \begin_inset Foot
158 status collapsed
159
160 \begin_layout Plain Layout
161 アイオワ州立大学統計学部、電子メール:
162  
163 \begin_inset CommandInset href
164 LatexCommand href
165 name "xie@yihui.name"
166 target "xie@yihui.name"
167 type "mailto:"
168 literal "false"
169
170 \end_inset
171
172
173 \end_layout
174
175 \end_inset
176
177  
178 \begin_inset ERT
179 status collapsed
180
181 \begin_layout Plain Layout
182
183
184 \backslash
185 and
186 \end_layout
187
188 \end_inset
189
190  Gregor Gorjanc 
191 \begin_inset ERT
192 status collapsed
193
194 \begin_layout Plain Layout
195
196
197 \backslash
198 and
199 \end_layout
200
201 \end_inset
202
203  Jean-Marc Lasgouttes
204 \end_layout
205
206 \begin_layout Standard
207 Sweaveは、文芸的プログラミングの考えに従った、動的なレポート生成するための、R言語(
208 \begin_inset Flex URL
209 status collapsed
210
211 \begin_layout Plain Layout
212
213 http://www.r-project.org
214 \end_layout
215
216 \end_inset
217
218 )ツールです。
219 Rコードは、\SpecialChar LaTeX
220 文書の中で混用することができ、文書がコンパイルされるときにRで実行されます。
221 結果は、\SpecialChar TeX
222 出力内に書きこまれます。
223
224 \end_layout
225
226 \begin_layout Standard
227 \SpecialChar LyX
228  2.0以降では、
229 \family sans
230 Sweave
231 \family default
232 モジュールを使えば、どの文書クラスでもSweaveをそのまま使うことができます。
233
234 \family sans
235 Sweave
236 \family default
237 モジュールを文書に加えるには、
238 \family sans
239 文書\SpecialChar menuseparator
240 設定\SpecialChar menuseparator
241 モジュール
242 \family default
243 を使用します。
244 この説明書では、Sweaveでよく使われる機能をいくつか紹介し、本モジュールがどう動作するかを説明します。
245 この説明書のPDF版は、
246 \begin_inset Flex URL
247 status collapsed
248
249 \begin_layout Plain Layout
250
251 https://github.com/downloads/yihui/lyx/sweave.pdf
252 \end_layout
253
254 \end_inset
255
256 にあります。
257
258 \end_layout
259
260 \begin_layout Section
261 システム要件
262 \end_layout
263
264 \begin_layout Standard
265
266 \family sans
267 Sweave
268 \family default
269 モジュールは、実行ファイル
270 \family typewriter
271 Rscript
272 \family default
273 に依存しますので、このファイルが、システムの
274 \family sans
275 PATH
276 \family default
277 変数に含まれるパスになくてはなりません。
278 これは、LinuxやMac OSユーザーには大した問題とならないでしょうが、Windowsユーザーには混乱を招くかもしれません。
279 Windowsにおける
280 \family sans
281 PATH
282 \family default
283 が何かわからない場合には、R言語のリポジトリ
284 \begin_inset Flex URL
285 status collapsed
286
287 \begin_layout Plain Layout
288
289 https://github.com/yihui/lyx
290 \end_layout
291
292 \end_inset
293
294 にあるRスクリプト
295 \family sans
296 add-R-path-win.R
297 \family default
298 を使って、パスを自動的に変更するか(推奨はできません。
299 何にせよ
300 \family sans
301 PATH
302 \family default
303 が何かくらいは勉強すべきです)、あるいは
304 \family sans
305 ツール\SpecialChar menuseparator
306 設定\SpecialChar menuseparator
307 パス\SpecialChar menuseparator
308 パス接頭辞
309 \family default
310 からRのバイナリパスを追加することができます(推奨)。
311 後者の場合、大抵
312 \family sans
313 C:
314 \backslash
315 Program Files
316 \backslash
317 R
318 \backslash
319 R-x.x.x
320 \backslash
321 bin
322 \family default
323 のような形をしており、R内で下記のようにして確認することができます。
324
325 \end_layout
326
327 \begin_layout Standard
328 \begin_inset Flex Chunk
329 status open
330
331 \begin_layout Plain Layout
332
333 \begin_inset Argument 1
334 status open
335
336 \begin_layout Plain Layout
337
338 where-is-R-bin,eval=FALSE
339 \end_layout
340
341 \end_inset
342
343
344 \end_layout
345
346 \begin_layout Plain Layout
347
348 R.home('bin')
349 \end_layout
350
351 \end_inset
352
353
354 \end_layout
355
356 \begin_layout Standard
357 これらの変更を加えた後、
358 \family sans
359 ツール\SpecialChar menuseparator
360 再初期設定
361 \family default
362 を使って、\SpecialChar LyX
363 の再設定を行う必要があります。
364
365 \family typewriter
366 Rscript
367 \family default
368
369 \family sans
370 PATH
371 \family default
372 にない場合、
373 \family sans
374 Sweave
375 \family default
376 モジュールを使うことはできません。
377 Sweaveの更新は続いていますので、最新版のRを使用することをお勧めします。
378 Rに同梱され、このパス下にある(CTANにはありません)\SpecialChar LaTeX
379 スタイルファイル
380 \family sans
381 Sweave.sty
382 \family default
383 によって、下記のように依存関係が追加されます。
384
385 \end_layout
386
387 \begin_layout Standard
388 \begin_inset Flex Chunk
389 status open
390
391 \begin_layout Plain Layout
392
393 \begin_inset Argument 1
394 status open
395
396 \begin_layout Plain Layout
397
398 sweave-sty,eval=FALSE
399 \end_layout
400
401 \end_inset
402
403
404 \end_layout
405
406 \begin_layout Plain Layout
407
408 file.path(R.home('share'),
409  'texmf',
410  'tex',
411  'latex')
412 \end_layout
413
414 \end_inset
415
416
417 \end_layout
418
419 \begin_layout Standard
420 Mik\SpecialChar TeX
421 ユーザーは、Mik\SpecialChar TeX
422 の設定で、Mik\SpecialChar TeX
423 のルートディレクトリ一覧にtexmfディレクトリも追加したほうが良いかもしれません。
424 また、
425 \family sans
426 Sweave.sty
427 \family default
428
429 \series bold
430 fancyvrb
431 \series default
432 パッケージに依存しており、
433 \series bold
434 ae
435 \series default
436 に依存する
437 \emph on
438 ことも
439 \emph default
440 あります。
441 \SpecialChar LyX
442
443 \family sans
444 Sweave.sty
445 \family default
446 を検出できないときは、直接Rからコピーしますので、このスタイルファイルがどこにあるかわからない場合でも、Sweaveモジュールは動作します。
447
448 \end_layout
449
450 \begin_layout Section
451 Sweaveの用例
452 \end_layout
453
454 \begin_layout Standard
455 Sweave文書を書く前に、Sweaveオプションを設定しましょう。
456 Sweaveの設定コマンドは
457 \family typewriter
458
459 \backslash
460 SweaveOpts{}
461 \family default
462 ですが、これは、\SpecialChar LyX
463 文書中で、
464 \family sans
465 挿入\SpecialChar menuseparator
466 任意設定差込枠\SpecialChar menuseparator
467 Sweaveオプション
468 \family default
469 か、\SpecialChar TeX
470 コードで書く(
471 \family sans
472 挿入\SpecialChar menuseparator
473 \SpecialChar TeX
474 コード
475 \family default
476 )ことで挿入することができます。
477 例えば、文頭で大域オプション
478 \family typewriter
479 echo=FALSE
480 \family default
481 を設定して、すべてのRコードを抑制することもできます(既定では、Rコードとその出力は、両方とも\SpecialChar LaTeX
482 文書中に表示されます)。
483
484 \end_layout
485
486 \begin_layout Standard
487 \SpecialChar LyX
488 でRコードを書くには、まずレイアウト様式一覧(ツールバーの左上端のドロップリスト)から、
489 \family sans
490 コード組
491 \family default
492 環境に変更するか、あるいは、単に\SpecialChar TeX
493 コード環境を開いて、Sweaveのコード組を書き込んでください。
494 後者の方法の方が安定していますので、そちらをお勧めします。
495
496 \end_layout
497
498 \begin_layout Standard
499 例えば
500 \family typewriter
501 width
502 \family default
503
504 \family typewriter
505 useFancyQuotes
506 \family default
507 のようなRオプションもSweaveの出力に便利です。
508 前者のオプションは、出力の幅を調整するものであり、後者は引用符に関してよく起こる問題を回避することができます。
509 詳細については、Rに添付のSweave取扱説明書をお読みください。
510
511 \end_layout
512
513 \begin_layout Standard
514 \begin_inset Flex Chunk
515 status open
516
517 \begin_layout Plain Layout
518
519 \begin_inset Argument 1
520 status open
521
522 \begin_layout Plain Layout
523
524 setup,
525  keep.source=TRUE
526 \end_layout
527
528 \end_inset
529
530
531 \end_layout
532
533 \begin_layout Plain Layout
534
535 ## オプション「digits」は桁数(の概数)を設定できます
536 \end_layout
537
538 \begin_layout Plain Layout
539
540 options(width = 70,
541  useFancyQuotes = FALSE,
542  digits = 4)
543 \end_layout
544
545 \end_inset
546
547
548 \end_layout
549
550 \begin_layout Standard
551 \begin_inset Flex Chunk
552 status open
553
554 \begin_layout Plain Layout
555
556 \begin_inset Argument 1
557 status open
558
559 \begin_layout Plain Layout
560
561 sweave-manual,
562  eval=FALSE,
563  keep.source=TRUE
564 \end_layout
565
566 \end_inset
567
568
569 \end_layout
570
571 \begin_layout Plain Layout
572
573 ## Sweaveのvignetteを見る (要 R >= 2.13.0)
574 \end_layout
575
576 \begin_layout Plain Layout
577
578 vignette("Sweave",
579  package = "utils")
580 \end_layout
581
582 \end_inset
583
584 下記は、どのSエンジンでも動作する単純な例です。
585
586 \end_layout
587
588 \begin_layout Standard
589 \begin_inset Flex Chunk
590 status open
591
592 \begin_layout Plain Layout
593
594 \begin_inset Argument 1
595 status open
596
597 \begin_layout Plain Layout
598
599 print-integers,
600  keep.source=TRUE
601 \end_layout
602
603 \end_inset
604
605
606 \end_layout
607
608 \begin_layout Plain Layout
609
610 ## 1から10までの整数は
611 \end_layout
612
613 \begin_layout Plain Layout
614
615 1:10
616 \end_layout
617
618 \end_inset
619
620
621 \end_layout
622
623 \begin_layout Standard
624 \begin_inset Flex Chunk
625 status open
626
627 \begin_layout Plain Layout
628
629 \begin_inset Argument 1
630 status open
631
632 \begin_layout Plain Layout
633
634 hide-results,
635  results=hide
636 \end_layout
637
638 \end_inset
639
640
641 \end_layout
642
643 \begin_layout Plain Layout
644
645 ## results=hide を設定して意図的に出力を隠す
646 \end_layout
647
648 \begin_layout Plain Layout
649
650 print(1:20)
651 \end_layout
652
653 \end_inset
654
655 単純な計算機をエミュレートすることもできます。
656
657 \end_layout
658
659 \begin_layout Standard
660 \begin_inset Flex Chunk
661 status open
662
663 \begin_layout Plain Layout
664
665 \begin_inset Argument 1
666 status open
667
668 \begin_layout Plain Layout
669
670 calculator
671 \end_layout
672
673 \end_inset
674
675
676 \end_layout
677
678 \begin_layout Plain Layout
679
680 1 + pi
681 \end_layout
682
683 \begin_layout Plain Layout
684
685 sin(pi/6)
686 \end_layout
687
688 \end_inset
689
690
691 \end_layout
692
693 \begin_layout Standard
694 今度は、ガウシアンデータを見てみましょう。
695
696 \end_layout
697
698 \begin_layout Standard
699 \begin_inset Flex Chunk
700 status open
701
702 \begin_layout Plain Layout
703
704 \begin_inset Argument 1
705 status open
706
707 \begin_layout Plain Layout
708
709 rnorm
710 \end_layout
711
712 \end_inset
713
714
715 \end_layout
716
717 \begin_layout Plain Layout
718
719 set.seed(123)  # 再現可能性のため
720 \end_layout
721
722 \begin_layout Plain Layout
723
724 x <- rnorm(20)
725 \end_layout
726
727 \begin_layout Plain Layout
728
729 print(x)
730 \end_layout
731
732 \begin_layout Plain Layout
733
734 t1 <- t.test(x)
735 \end_layout
736
737 \end_inset
738
739
740 \end_layout
741
742 \begin_layout Standard
743 数値を標準テキストに簡単に統合させることができます。
744 これは、
745 \family typewriter
746
747 \backslash
748 Sexpr{}
749 \family default
750 コマンドによって行われ、\SpecialChar LyX
751 中の対応するメニューは
752 \family sans
753 挿入\SpecialChar menuseparator
754 任意設定差込枠\SpecialChar menuseparator
755 S/R表現
756 \family default
757 ですが、\SpecialChar TeX
758 コードを使うこともできます。
759 例えば、ベクトル
760 \family typewriter
761 x
762 \family default
763 の第3要素は、
764 \begin_inset Flex S/R expression
765 status collapsed
766
767 \begin_layout Plain Layout
768
769 x[3]
770 \end_layout
771
772 \end_inset
773
774  (すなわち
775 \family typewriter
776 x[3]
777 \family default
778 )であり、検定の
779 \begin_inset Formula $p$
780 \end_inset
781
782 値は
783 \begin_inset Flex S/R expression
784 status collapsed
785
786 \begin_layout Plain Layout
787
788 format.pval(t1$p.value)
789 \end_layout
790
791 \end_inset
792
793 です。
794 これらの数値は、R中で
795 \emph on
796 round()
797 \emph default
798 のようなコマンドを使うことによって丸めることもできます。
799
800 \end_layout
801
802 \begin_layout Standard
803
804 \family roman
805 \series medium
806 \shape up
807 \size normal
808 \emph off
809 \bar no
810 \noun off
811 \color none
812 今度は、
813 \family typewriter
814 \series default
815 \shape default
816 \size default
817 \emph default
818 \bar default
819 \noun default
820 \color inherit
821 iris
822 \family roman
823 \series medium
824 \shape up
825 \size normal
826 \emph off
827 \bar no
828 \noun off
829 \color none
830 データセットの要約を見てみましょう。
831
832 \end_layout
833
834 \begin_layout Standard
835 \begin_inset Flex Chunk
836 status open
837
838 \begin_layout Plain Layout
839
840 \begin_inset Argument 1
841 status open
842
843 \begin_layout Plain Layout
844
845 iris-summary
846 \end_layout
847
848 \end_inset
849
850
851 \end_layout
852
853 \begin_layout Plain Layout
854
855 summary(iris[,-5])
856 \end_layout
857
858 \end_inset
859
860
861 \end_layout
862
863 \begin_layout Standard
864 \begin_inset Float table
865 placement document
866 alignment document
867 wide false
868 sideways false
869 status open
870
871 \begin_layout Plain Layout
872 \begin_inset Caption Standard
873
874 \begin_layout Plain Layout
875
876 \family typewriter
877 iris
878 \family default
879 データの最初の4変数の分位数
880 \begin_inset CommandInset label
881 LatexCommand label
882 name "tab:xtable-demo"
883
884 \end_inset
885
886
887 \end_layout
888
889 \end_inset
890
891
892 \end_layout
893
894 \begin_layout Plain Layout
895 \align center
896 \begin_inset Flex Chunk
897 status open
898
899 \begin_layout Plain Layout
900
901 \begin_inset Argument 1
902 status open
903
904 \begin_layout Plain Layout
905
906 xtable-demo,results=tex,echo=FALSE
907 \end_layout
908
909 \end_inset
910
911
912 \end_layout
913
914 \begin_layout Plain Layout
915
916 if (require('xtable')) {
917 \end_layout
918
919 \begin_layout Plain Layout
920
921 print(xtable(sapply(iris[,-5],
922  quantile)),
923  floating=FALSE)
924 \end_layout
925
926 \begin_layout Plain Layout
927
928 } else cat('the xtable package is not available!
929  please install.packages("xtable")')
930 \end_layout
931
932 \end_inset
933
934
935 \end_layout
936
937 \end_inset
938
939
940 \end_layout
941
942 \begin_layout Standard
943 通常、人々はこのような「生の」出力を好みませんので、これらのごちゃごちゃした数字を、
944 \series bold
945 xtable
946 \series default
947 パッケージを使って綺麗にしてやるといいでしょう。
948
949 \begin_inset CommandInset ref
950 LatexCommand ref
951 reference "tab:xtable-demo"
952 nolink "false"
953
954 \end_inset
955
956 は、Sweaveでの
957 \series bold
958 xtable
959 \series default
960 パッケージの使い方を示すための例です。
961 コード組のオプション
962 \family typewriter
963 results=tex
964 \family default
965 は、R出力が、特別な環境(
966 \family typewriter
967 Soutput
968 \family default
969 )で包まれるのではなく、生の\SpecialChar LaTeX
970 コードとして書き出されるように保証するためのものです。
971
972 \end_layout
973
974 \begin_layout Standard
975
976 \begin_inset CommandInset ref
977 LatexCommand ref
978 reference "fig:iris-pairs"
979 nolink "false"
980
981 \end_inset
982
983 と図
984 \begin_inset CommandInset ref
985 LatexCommand ref
986 reference "fig:iris-boxplots"
987 nolink "false"
988
989 \end_inset
990
991 は、Sweaveを使って画像を生成する簡単な例です。
992
993 \end_layout
994
995 \begin_layout Standard
996 \begin_inset Float figure
997 placement document
998 alignment document
999 wide false
1000 sideways false
1001 status open
1002
1003 \begin_layout Plain Layout
1004 \align center
1005 \begin_inset Note Note
1006 status open
1007
1008 \begin_layout Plain Layout
1009 epsとpdfの両方をtrueにして、latexとpdflatexの両方を動作するようにすることができます。
1010 実際には、おそらく一つを選ぶだけでよいでしょう。
1011
1012 \end_layout
1013
1014 \end_inset
1015
1016
1017 \begin_inset Flex Chunk
1018 status open
1019
1020 \begin_layout Plain Layout
1021
1022 \begin_inset Argument 1
1023 status open
1024
1025 \begin_layout Plain Layout
1026
1027 iris-pairs,fig=TRUE,width=4.5,height=4.5,eps=TRUE,pdf=TRUE
1028 \end_layout
1029
1030 \end_inset
1031
1032
1033 \end_layout
1034
1035 \begin_layout Plain Layout
1036
1037 pairs(iris,
1038  col = iris$Species)
1039 \end_layout
1040
1041 \end_inset
1042
1043
1044 \end_layout
1045
1046 \begin_layout Plain Layout
1047 \begin_inset Caption Standard
1048
1049 \begin_layout Plain Layout
1050
1051 \family typewriter
1052 iris
1053 \family default
1054 データの散布図マトリックス
1055 \begin_inset CommandInset label
1056 LatexCommand label
1057 name "fig:iris-pairs"
1058
1059 \end_inset
1060
1061
1062 \end_layout
1063
1064 \end_inset
1065
1066
1067 \end_layout
1068
1069 \end_inset
1070
1071
1072 \end_layout
1073
1074 \begin_layout Standard
1075 \begin_inset Float figure
1076 placement document
1077 alignment document
1078 wide false
1079 sideways false
1080 status open
1081
1082 \begin_layout Plain Layout
1083 \align center
1084 \begin_inset Flex Chunk
1085 status open
1086
1087 \begin_layout Plain Layout
1088
1089 \begin_inset Argument 1
1090 status open
1091
1092 \begin_layout Plain Layout
1093
1094 iris-boxplots,fig=TRUE,width=7,height=2,keep.source=F,eps=T,pdf=T
1095 \end_layout
1096
1097 \end_inset
1098
1099
1100 \end_layout
1101
1102 \begin_layout Plain Layout
1103
1104 par(mar=c(4,5,.1,.3),
1105  las=1)
1106 \end_layout
1107
1108 \begin_layout Plain Layout
1109
1110 boxplot(Sepal.Length~Species,data=iris,horizontal=TRUE,xlab='Sepal.Length')
1111 \end_layout
1112
1113 \end_inset
1114
1115
1116 \end_layout
1117
1118 \begin_layout Plain Layout
1119 \begin_inset Caption Standard
1120
1121 \begin_layout Plain Layout
1122 種でグループ化された萼片の長さのボックスプロット
1123 \begin_inset CommandInset label
1124 LatexCommand label
1125 name "fig:iris-boxplots"
1126
1127 \end_inset
1128
1129
1130 \end_layout
1131
1132 \end_inset
1133
1134
1135 \end_layout
1136
1137 \end_inset
1138
1139
1140 \end_layout
1141
1142 \begin_layout Standard
1143 Sweave文書中のRコードは、単一のRスクリプトとして書きだすことができますが、これは
1144 \family typewriter
1145 R CMD Stangle
1146 \family default
1147 を使って行われます。
1148
1149 \end_layout
1150
1151 \begin_layout Section
1152
1153 \family sans
1154 Sweave
1155 \family default
1156 モジュール
1157 \end_layout
1158
1159 \begin_layout Standard
1160
1161 \family sans
1162 Sweave
1163 \family default
1164 モジュールは、\SpecialChar LyX
1165 文書が、Rを使った文芸的プログラミングのコンポーネントを含んでいることを宣言しますので、\SpecialChar LyX
1166 は、そのような文書を取り扱う特定の変換子を使って処理します(取扱説明書カスタマイズ篇参照)。
1167
1168 \family sans
1169 Sweave
1170 \family default
1171 モジュールは、
1172 \family sans
1173 sweave
1174 \family default
1175 変換子を使用しますが、これは、\SpecialChar LyX
1176
1177 \family sans
1178 scripts
1179 \family default
1180 ディレクトリ下にあるRスクリプト
1181 \family sans
1182 lyxsweave.R
1183 \family default
1184 が本体になっています。
1185 このスクリプトは、\SpecialChar LyX
1186 から
1187 \family sans
1188 Rnw
1189 \family default
1190 文書を受け取り、これを\SpecialChar TeX
1191 文書に変換するためにSweaveを呼び出します。
1192 その後の作業は、\SpecialChar LyX
1193 が面倒を見ます。
1194
1195 \end_layout
1196
1197 \begin_layout Standard
1198
1199 \family sans
1200 sweave
1201 \family default
1202 形式から\SpecialChar LaTeX
1203 への変換子は、下記のコマンド行でRを呼び出します。
1204
1205 \end_layout
1206
1207 \begin_layout Standard
1208 \begin_inset ERT
1209 status open
1210
1211 \begin_layout Plain Layout
1212
1213
1214 \backslash
1215 begin{verbatim}
1216 \end_layout
1217
1218 \begin_layout Plain Layout
1219
1220 Rscript --no-save --no-restore $$s/scripts/lyxsweave.R $$p$$i $$p$$o $$e $$r
1221 \end_layout
1222
1223 \begin_layout Plain Layout
1224
1225
1226 \backslash
1227 end{verbatim}
1228 \end_layout
1229
1230 \end_inset
1231
1232
1233 \end_layout
1234
1235 \begin_layout Standard
1236 \SpecialChar LyX
1237 ライブラリディレクトリ
1238 \family typewriter
1239 $$s
1240 \family default
1241 は、
1242 \family sans
1243 ヘルプ\SpecialChar menuseparator
1244 \SpecialChar LyX
1245 について
1246 \family default
1247 メニューに記載があります。
1248 他にRに渡すことのできるオプションは、Rスクリプト中で説明されており、また、\SpecialChar LyX
1249 取扱説明書カスタマイズ篇には、
1250 \family typewriter
1251 $$i
1252 \family default
1253
1254 \family typewriter
1255 $$o
1256 \family default
1257
1258 \family typewriter
1259 $$e
1260 \family default
1261
1262 \family typewriter
1263 $$r
1264 \family default
1265 についての詳しい説明があります。
1266 一般ユーザーは、これらの意味について詳しく知る必要はありませんが、ここでは、Rコードにまつわる若干の問題について説明しておく必要があります。
1267
1268 \end_layout
1269
1270 \begin_layout Enumerate
1271 \SpecialChar LyX
1272 文書のエンコーディングを表す文字列は、Rにコマンドラインオプションとして渡されます。
1273 取り得る値は、
1274 \family typewriter
1275 ISO-8859-15
1276 \family default
1277
1278 \family typewriter
1279 UTF-8
1280 \family default
1281 などです。
1282 エンコーディングは、Rが
1283 \family sans
1284 Rnw
1285 \family default
1286 文書を正しく読むのに使用されます。
1287
1288 \end_layout
1289
1290 \begin_layout Enumerate
1291 Sweave文書内のRコード組は、\SpecialChar LyX
1292 文書のあるディレクトリで実行されます(自信のない場合は、現在の作業ディレクトリがどこかを見るために、コード組に
1293 \family typewriter
1294 getwd()
1295 \family default
1296 を置いてください)。
1297 この場合、データファイルは同じディレクトリ下に置くことができ、再現可能性を保証するために、R内部では相対パスを使用してください。
1298 すなわち、他のシステムでは存在しないかもしれない、ハードコードのパスを書く必要はありません。
1299
1300 \end_layout
1301
1302 \begin_layout Enumerate
1303 \SpecialChar LaTeX
1304
1305 \family sans
1306 Sweave.sty
1307 \family default
1308 を検出できないと、このRスクリプトが自動的に
1309 \family sans
1310 Sweave.sty
1311 \family default
1312 を一時ディレクトリにコピーし、そこで\SpecialChar LaTeX
1313 コンパイルを実行します。
1314
1315 \end_layout
1316
1317 \begin_layout Enumerate
1318 Sweaveは、既定でRnwファイルのファイル名を、画像出力の接頭辞文字列として使用します。
1319 既知の問題の1つ(
1320 \begin_inset CommandInset href
1321 LatexCommand href
1322 name "#7551"
1323 target "https://www.lyx.org/trac/ticket/7551"
1324 literal "false"
1325
1326 \end_inset
1327
1328 )として、ファイル名(拡張子を除く)にピリオドが含まれている場合、\SpecialChar LaTeX
1329 がそのファイルを
1330 \family typewriter
1331
1332 \backslash
1333 includegraphics{}
1334 \family default
1335 で処理する際に失敗しうるということが知られています。
1336 したがって、接頭辞の既定値は、すべてのピリオドを「-」で置換したファイル名にしてあります。
1337 この問題は、Sweaveで直接的に解決することもができます。
1338 Sweaveオプションの
1339 \family typewriter
1340 prefix.string
1341 \family default
1342 を、ピリオドを含まない文字列に設定すると、このオプションが既定値を上書きします。
1343
1344 \end_layout
1345
1346 \begin_layout Standard
1347 Sweaveパッケージには、事前に
1348 \family typewriter
1349 noae
1350 \family default
1351 オプションが設定されています。
1352 このオプションは、Sweaveが下記の2つのパッケージを読み込んでしまうのを防ぎます。
1353
1354 \end_layout
1355
1356 \begin_layout Standard
1357 \begin_inset ERT
1358 status open
1359
1360 \begin_layout Plain Layout
1361
1362
1363 \backslash
1364 begin{verbatim}
1365 \end_layout
1366
1367 \begin_layout Plain Layout
1368
1369
1370 \backslash
1371 RequirePackage[T1]{fontenc}  
1372 \end_layout
1373
1374 \begin_layout Plain Layout
1375
1376
1377 \backslash
1378 RequirePackage{ae}
1379 \end_layout
1380
1381 \begin_layout Plain Layout
1382
1383
1384 \backslash
1385 end{verbatim}
1386 \end_layout
1387
1388 \end_inset
1389
1390
1391 \end_layout
1392
1393 \begin_layout Standard
1394 \SpecialChar LyX
1395 は、既定でフォントエンコーディングを取り扱うことができるので、Sweaveにこれをやってもらう必要はないのです(その上、これはパッケージオプションの衝突をもたらす可能性があります)。
1396 一方、ユーザーは、必要ならばプリアンブルで
1397 \series bold
1398 ae
1399 \series default
1400 パッケージを手動で読み込ませることができます。
1401
1402 \end_layout
1403
1404 \begin_layout Section
1405 問題の解決法
1406 \end_layout
1407
1408 \begin_layout Standard
1409 \SpecialChar LyX
1410  2.0以降、コンパイル中の詳細な情報を、
1411 \family sans
1412 表示\SpecialChar menuseparator
1413 メッセージを表示
1414 \family default
1415 で見ることができるようになりました。
1416 これは、問題の解決に非常に役に立ちます。
1417 Rの処理は、メッセージパネルに表示され、エラーが発生した場合には、どのコード組がおかしいのか知ることができます。
1418 例えば、この文書をコンパイルする時、以下のようなメッセージを見ることができるでしょう。
1419
1420 \end_layout
1421
1422 \begin_layout Standard
1423 \begin_inset ERT
1424 status open
1425
1426 \begin_layout Plain Layout
1427
1428
1429 \backslash
1430 begin{verbatim}
1431 \end_layout
1432
1433 \begin_layout Plain Layout
1434
1435 17:58:47.868:
1436  Processing code chunks with options ...
1437 \end_layout
1438
1439 \begin_layout Plain Layout
1440
1441 17:58:47.885:
1442   1 :
1443  echo keep.source term verbatim (label=setup)
1444 \end_layout
1445
1446 \begin_layout Plain Layout
1447
1448 17:58:47.889:
1449   2 :
1450  echo keep.source (label=sweave-manual)
1451 \end_layout
1452
1453 \begin_layout Plain Layout
1454
1455 17:58:47.908:
1456   3 :
1457  echo keep.source term verbatim (label=print-integers)
1458 \end_layout
1459
1460 \begin_layout Plain Layout
1461
1462 ....
1463 \end_layout
1464
1465 \begin_layout Plain Layout
1466
1467 17:58:47.941:
1468  Loading required package:
1469  xtable
1470 \end_layout
1471
1472 \begin_layout Plain Layout
1473
1474 17:58:47.976:
1475   9 :
1476  echo term verbatim pdf (label=iris-pairs)
1477 \end_layout
1478
1479 \begin_layout Plain Layout
1480
1481 ....
1482 \end_layout
1483
1484 \begin_layout Plain Layout
1485
1486 17:58:48.116:
1487  You can now run (pdf)latex on 'sweave.tex'
1488 \end_layout
1489
1490 \begin_layout Plain Layout
1491
1492
1493 \backslash
1494 end{verbatim}
1495 \end_layout
1496
1497 \end_inset
1498
1499
1500 \end_layout
1501
1502 \begin_layout Standard
1503
1504 \family typewriter
1505 label=
1506 \family default
1507 の後の文字列が、コード組のラベルを示します。
1508 コード組のどれかがRでエラーを起こせば、即座にここにエラーメッセージを見ることができます。
1509
1510 \end_layout
1511
1512 \begin_layout Standard
1513 もうひとつ知られている問題点は、\SpecialChar LyX
1514 中でコード組段落の配置に(
1515 \family sans
1516 段落設定
1517 \family default
1518 を使用して)手を加えた場合、\SpecialChar LyX
1519 は、改行しないでコード組の前に
1520 \family typewriter
1521
1522 \backslash
1523 centering{}
1524 \family default
1525 のようなマクロを書き加えてしまうことがあるので、Sweaveコード組がエラーを起こす場合があるという事です。
1526 この場合のコード組は、下記のようになってしまいます。
1527
1528 \end_layout
1529
1530 \begin_layout Standard
1531 \begin_inset ERT
1532 status open
1533
1534 \begin_layout Plain Layout
1535
1536
1537 \backslash
1538 begin{verbatim}
1539 \end_layout
1540
1541 \begin_layout Plain Layout
1542
1543
1544 \backslash
1545 centering{}<<xtable-demo,results=tex,echo=FALSE>>=
1546 \end_layout
1547
1548 \begin_layout Plain Layout
1549
1550
1551 \backslash
1552 end{verbatim}
1553 \end_layout
1554
1555 \end_inset
1556
1557
1558 \end_layout
1559
1560 \begin_layout Standard
1561
1562 \family typewriter
1563 <<>>=
1564 \family default
1565 は行頭すぐに置かれなくてはならないため、これは正しいSweaveコードではありません。
1566 したがって、コード組段落の配置に手を加える場合には、
1567 \family sans
1568 表示\SpecialChar menuseparator
1569 ソースを表示
1570 \family default
1571 で、実際のソースコードを再確認し、
1572 \family typewriter
1573 <<>>=
1574 \family default
1575 が改行後に現れるようにすることをお勧めします。
1576
1577 \begin_inset CommandInset ref
1578 LatexCommand ref
1579 reference "tab:xtable-demo"
1580 nolink "false"
1581
1582 \end_inset
1583
1584 のコード組に手動で空行が追加されているのは、このためです。
1585
1586 \end_layout
1587
1588 \begin_layout Section
1589 リソース
1590 \end_layout
1591
1592 \begin_layout Standard
1593 Sweaveの利用者の手引きは
1594 \begin_inset Flex URL
1595 status collapsed
1596
1597 \begin_layout Plain Layout
1598
1599 https://stat.ethz.ch/R-manual/R-devel/library/utils/doc/Sweave.pdf
1600 \end_layout
1601
1602 \end_inset
1603
1604 にあります。
1605 「Reproducible Research」にあるCRANタスクビューには、便利と思われるSweave関連パッケージの一覧があります。
1606
1607 \begin_inset Flex URL
1608 status collapsed
1609
1610 \begin_layout Plain Layout
1611
1612 http://cran.r-project.org/web/views/ReproducibleResearch.html
1613 \end_layout
1614
1615 \end_inset
1616
1617 をご覧ください。
1618 \SpecialChar LyX
1619 とSweaveに関する質問は、\SpecialChar LyX
1620 メーリングリスト(
1621 \begin_inset Flex URL
1622 status collapsed
1623
1624 \begin_layout Plain Layout
1625
1626 https://www.lyx.org/MailingLists
1627 \end_layout
1628
1629 \end_inset
1630
1631 )に投稿してください。
1632 さらに多くの\SpecialChar LyX
1633 の用例は、
1634 \begin_inset Flex URL
1635 status collapsed
1636
1637 \begin_layout Plain Layout
1638
1639 https://github.com/yihui/lyx
1640 \end_layout
1641
1642 \end_inset
1643
1644 にあります。
1645
1646 \end_layout
1647
1648 \begin_layout Section
1649 FAQ
1650 \end_layout
1651
1652 \begin_layout Subsection
1653 Sweaveをbeamerで使うにはどうすればよいでしょうか
1654 \end_layout
1655
1656 \begin_layout Standard
1657 beamerのスライドでSweaveを使うと、\SpecialChar LyX
1658 では\SpecialChar LaTeX
1659 エラーが発生します。
1660 その原因は、生のRコードを含むbeamerフレームのせいです。
1661 これを解決するには、通常のフレームの代わりに脆弱フレームを使うか、フレーム表題に
1662 \family sans
1663 挿入\SpecialChar menuseparator
1664 フレームオプション
1665 \family default
1666 を使って、
1667 \family typewriter
1668 fragile
1669 \family default
1670 オプションを渡します。
1671
1672 \end_layout
1673
1674 \begin_layout Subsection
1675 Rnw文書をコンパイルするためのRスクリプトを書いてもいいですか
1676 \end_layout
1677
1678 \begin_layout Standard
1679 もちろんです。
1680 まず、前述のRスクリプト
1681 \family typewriter
1682 $$s
1683 \family sans
1684 /scripts/lyxsweave.R
1685 \family default
1686 がどのように動作するかを理解する必要がありますので、できればそのRソースコードを読むことをお勧めします(特に、Rがパスをどのように取得し、Rnw文書を取り扱うのに
1687 \emph on
1688 Sweave()
1689 \emph default
1690 をどのように使っているかを見てください)。
1691 その後、カスタマイズした
1692 \family sans
1693 lyxsweave.R
1694 \family default
1695 をあなたの
1696 \emph on
1697 ユーザーディレクトリ
1698 \emph default
1699 (ヘルプ\SpecialChar menuseparator
1700 \SpecialChar LyX
1701 についてでチェックできます)の
1702 \family sans
1703 scripts
1704 \family default
1705 ディレクトリ下に置いてください。
1706 \SpecialChar LyX
1707 は自身の
1708 \emph on
1709 ライブラリディレクトリ
1710 \emph default
1711 を見に行く前に
1712 \emph on
1713 ユーザーディレクトリ
1714 \emph default
1715 をチェックしますので、Rスクリプト
1716 \family sans
1717 lyxsweave.R
1718 \family default
1719 がユーザーディレクトリで検出されれば、それが使用されます。
1720 \SpecialChar LyX
1721 ライブラリディレクトリ下にあるスクリプトを直接ハックしてしまうと、\SpecialChar LyX
1722 更新時に修正したスクリプトが上書きされてしまいます(ユーザーディレクトリは影響を受けません)ので、お勧めしません。
1723
1724 \end_layout
1725
1726 \begin_layout Standard
1727 なお、Rの公式Sweaveの他に、Sweaveの代替ツールである
1728 \series bold
1729 knitr
1730 \series default
1731 パッケージもサポートされており、対応するモジュール名は
1732 \family sans
1733 Rnw (knitr)
1734 \family default
1735 となっています。
1736
1737 \end_layout
1738
1739 \end_body
1740 \end_document