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