

超初心者です。RStudioで作った表を楽に出力するために、TeXの勉強をはじめました。  
（TeX live2017で、RStudioはVersion 1.0.136です。）  
RStudioを使っています。Rで計算した表をxtable関数を使って出力し、TeXで  
コンパイルをしようと考えました。下記のコードをうち、TeXコードを出力し、２．のようにSourceに貼り付けてコンパイルしたら、

> The font size command\ normal size is not defined:

のエラーが２つと

> Environmental table undefined  
>  begin{document}is ended by \end{table}  
>  This file needs 'pLaTeX2e'

とでてきています。  
R StudioのGlobal OptionのSweaveの項目のtype setはXeLaTeXになっていますが、  
pLaTeX2eの選択肢はないです。  
何から勉強して解決していけばよいでしょうか？

１．Rのコード

[code]

    > ans<-table(newvariable$bq6_2)
    > p.ans<-round(ans*100/sum(ans),1)
    > cbind(ans,p.ans)
    ans p.ans
    hh_under18  659  21.2
    hh_over65   857  27.6
    hh_others  1592  51.2
    > table1<-cbind(ans,p.ans)
    > tb1<-xtable(table1)
    > print(tb1)
    % latex table generated in R 3.4.0 by xtable 1.8-2 package
    % Wed Jun 28 21:25:29 2017
    \begin{table}[ht]
    \centering
    \begin{tabular}{rrr}
    \hline
    & ans & p.ans \\ 
    \hline
    hh\_under18 & 659.00 & 21.20 \\ 
    hh\_over65 & 857.00 & 27.60 \\ 
    hh\_others & 1592.00 & 51.20 \\ 
    \hline
    \end{tabular}
    \end{table}
    > 
    
[/code]

2.TeXのコード

[code]

    \documentclass[11pt]{jsarticle}
    \begin{document}
    % latex table generated in R 3.4.0 by xtable 1.8-2 package
    % Wed Jun 28 21:25:29 2017
    \begin{table}[ht]
    \centering
    \begin{tabular}{rrr}
    \hline
    & ans & p.ans \\
    \hline
    hh\_under18 & 659.00 & 21.20 \\
    hh\_over65 & 857.00 & 27.60 \\
    hh\_others & 1592.00 & 51.20 \\
    \hline
    \end{tabular}
    \end{table}
    \end{document}
    
[/code]


CC BY-SA 4.0
2017-06-29T02:06:32.293
35951
2020-05-19T06:04:35.523
2019-09-17T09:30:33.167
32986
22570
question
r latex
RStudioにおいてRで計算した表をxtable関数を使って出力しコンパイルした時のエラー


エラーメッセージを見ると，使おうとしている処理系がファイルの内容に対応してない，という感じでしょうか．  
質問を読むとRStudio からXeLaTeXでコンパイルしているようなので，documentclass を `jsarticle` から
`bxjsarticle` に変えてください．

また，元のコードの

  1. アンダーバー `_` をエスケープして `\_` にする
  2. 行の末尾の `\` を `\\` にする

の2点を修正する必要がありますが，xtable の出力はここはきちんと整形してくれるので，投稿時のコピペミスかなと思います．

xtable の出力はこうなります．

[code]

    % latex table generated in R 3.3.2 by xtable 1.8-2 package
    % Fri Jul 07 00:45:59 2017
    \begin{table}[ht]
    \centering
    \begin{tabular}{rrr}
      \hline
     & ans & p.ans \\ 
      \hline
    hh\_under18 & 659.00 & 21.20 \\ 
      hh\_over65 & 857.00 & 27.60 \\ 
      hh\_others & 1592.00 & 51.20 \\ 
       \hline
    \end{tabular}
    \end{table}
    
[/code]

元のコードのまま（`jsarticle` を使う）場合は，`platex` を使うことになるので，RStudio からではなくコマンドプロンプト（もしくは
ターミナル）から

[code]

    platex hoge.tex
    dvipdfmx hoge.dvi
    
[/code]

という感じでコンパイルしてください．


CC BY-SA 3.0
2017-07-06T16:25:49.607
36161
2017-07-06T16:25:49.607
24196
35951
answer


## 何から学ぶか

> 何から勉強して解決していけばよいでしょうか？

これがご質問の趣旨であれば，解答は簡単です。R のコードを入れる前に日本語に対応した LaTeX, XeLaTeX, LuaLaTeX
等の使い方を勉強するのがいいと思います。

R/RStudio の問題なのか
LaTeX一般の問題なのか，日本語LaTeXに特有の問題なのかを切り分けることができるようになれば，自分で答えを見つけられる可能性を高めますし，自分では分からなくても回答を得られる可能性が上がります。答える側のハードルが下がりますし，適切なコミュニティにリーチしやすくなるので。

`documentclass` に何を入れるかについては，RStudio に特有の問題ではありますが，RStudio 上で完結したい場合には platex
+ dvipdfmx を使ったコンパイルは面倒なので, jsarticle クラスは避けたほうがよいです。

> Rで計算した表をxtable関数を使って出力し、TeXで  
>  コンパイルをしようと考えました。下記のコードをうち、TeXコードを出力し、２．のようにSourceに貼り付けてコンパイル

R で生成したテーブルを LaTeX のソースにコピペするよりももっとよい方法があります。

  1. LaTeX の機能を最大限使いたい場合は R Sweave を使う 
  2. テーブルを埋め込む程度であれば R Markdown 形式を用いる

いずれにせよ [knitr](https://yihui.name/knitr/) パッケージについて学ぶことになります。LaTeX
の組版のフルパワーが必要ないのであれば
[こちら](http://rmarkdown.rstudio.com/pdf_document_format.html) を参考に R Markdown
の書き方を学ぶとよいです。HTML 出力等他の形式への出力にも対応しています。

個人的には，複雑な組版を使う場合には R Sweave（Rnw 形式），簡単な組版で事足りる（多くの場合はそうです）ときは R Markdown で
pandoc のオプションを調べつつ使っています。

## R Markdown サンプル

R Markdown で日本語文書にR で生成した表を入れるには，次のようなファイルを作り，`.Rmd` という拡張子で保存します。RStudio で開くと
Knit ボタンが見えるはずなので，これを押すと日本語とRの出力が混在したPDFが生成されるはずです。（IPAex
フォントがインストールされていない場合は配布元の指示に従ってインストールする <http://ipafont.ipa.go.jp>）

[code]

    ---
    title: サンプル
    author: 名前
    date: '`r format(Sys.time(), "%Y/%m/%d")`'
    output:
      pdf_document:
        fig_caption: yes
        keep_tex: no
        latex_engine: xelatex
        number_sections: yes
        template: null
        toc: no
    documentclass: bxjsarticle
    classoption: 
      - xelatex
      - ja=standard
    ---
    
    ```{r, include=FALSE}
    options(xtable.comment = FALSE)
    ```
    
    # 表の出力
    
    ```{r, echo=FALSE, results='asis'}
    # ここに表を生成するコードを書く
    # このサンプルでは，R に組み込みの pressure データを利用
    xtable::xtable(pressure)
    ```
    
[/code]


CC BY-SA 3.0
2017-07-08T13:06:01.647
36199
2017-07-09T23:30:03.977
2017-07-09T23:30:03.977
11184
11184
35951
answer