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