2017-11-21 2 views
2

私は現在rmarkdownでレポートを書いているので、rコードの塊の中にセクションを作成したいと思います。 cat()結果= "asis"の助けを借りてこれが可能であることが分かりました。 このソリューションの問題は、私のRコードの結果とコードがいつものように正しく表示されないことです。例えばRコードチャンク内にR-markdownセクションを作成するには?適切なコード表示で

--- 
title: "test" 
output: pdf_document 
--- 

```{r, results='asis'} 
for (i in 1:10) { 
    cat("\\section{Part:", i, "}") 
    print(summary(lm(data=X, X1~X2)) 
    $\alpha = `r X[1,i]`$ 
} 
``` 

はかなりトリックを行いますが、ここでは二つの問題はまだあります

  • 私はそれを推測するため要約()ためのR出力は、非常に奇妙な表示されているがLaTeXコードとして解釈されます
  • 私はこの環境ではLaTeX式を使用できません。したがって、すべてのセクションをR変数を使用する可能性のある式で終了させたい場合、これは可能ではありませんe

誰かがこれに対する解決策を知っているのですか、ループ内にセクションを作成し、このセクションにRコード、R出力、LaTeX式を使用する回避策がありますか?

私はアドバイスのすべての種類のために非常に感謝しています:)

答えて

1

あなたはチャンクで4 \でコードをエスケープ、verbatim環境とRの出力を囲むことができ値下げと逐語的な環境

を使用します。

```{r, results='asis'} 
for (i in 1:10) { 
    cat("\\section{Part:", i, "}") 
    cat("\\begin{verbatim}") 
    print(summary(lm(data=mtcars, mtcars[,1]~ mtcars[,i]))) 
    cat("\\end{verbatim}") 
    cat(paste0("$\\\\alpha$ = ", mtcars[1,i])) 
} 
``` 

enter image description here

何かラテックスを実行しているとき、私は、私が見つけ値下げ(.Rmd)を終了し、(.Rnwを)はSweaveを使用する傾向がある時点でのリストパッケージ

を使用して、より空想それははるかに簡単です。あなたは.texファイルで何が起こっているのかを確認し、何が間違っているのかを知ることができます。

\documentclass[a4paper]{article} 
\usepackage{listings} 
\usepackage[usename,dvipsnames]{xcolor} 
% create a set of colors 
\definecolor{mygreen}{rgb}{0,0.6,0} 
\definecolor{mygray}{rgb}{0.5,0.5,0.5} 
\definecolor{mymauve}{rgb}{0.58,0,0.82} 
% create a listings environment suitable for R code 
\lstset{ % 
    backgroundcolor=\color{white}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor} 
    basicstyle=\footnotesize\ttfamily, % the size of the fonts that are used for the 
    % code 
    breakatwhitespace=false,   % sets if automatic breaks should only happen at whitespace 
    breaklines=true,     % sets automatic line breaking 
    captionpos=b,     % sets the caption-position to bottom 
    commentstyle=\color{mygreen},  % comment style 
    deletekeywords={...},   % if you want to delete keywords from the given language 
    escapeinside={\%*}{*)},   % if you want to add LaTeX within your code 
    extendedchars=true,    % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 
    frame=single,     % adds a frame around the code 
    keepspaces=true,     % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) 
    keywordstyle=\color{blue},  % keyword style 
    language=R,      % the language of the code 
    morekeywords={*,...},   % if you want to add more keywords to the set 
    numbers=left,     % where to put the line-numbers; possible values are (none, left, right) 
    numbersep=5pt,     % how far the line-numbers are from the code 
    numberstyle=\tiny\color{mygray}, % the style that is used for the line-numbers 
    rulecolor=\color{black},   % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) 
    showspaces=false,    % show spaces everywhere adding particular underscores; it overrides 'showstringspaces' 
    showstringspaces=false,   % underline spaces within strings only 
    showtabs=false,     % show tabs within strings adding particular underscores 
    stepnumber=2,     % the step between two line-numbers. If it is 1, each line will be numbered 
    stringstyle=\color{mymauve},  % string literal style 
    tabsize=2,      % sets default tabsize to 2 spaces 
    title=\lstname     % show the filename of files included with \lstinputlisting; also try caption instead of title 
} 
\title{test} 
\begin{document} 
\maketitle 

<<r, results='asis'>>= 
for (i in 1:10) { 
    cat("\\section{Part:", i, "}") 
    cat("\\begin{lstlisting}") 
    print(summary(lm(data=mtcars, mtcars[,1]~ mtcars[,i]))) 
    cat("\\end{lstlisting}") 
    cat(paste0("$\\\\alpha$ = ", mtcars[1,i])) 
} 
@ 

\end{document} 

enter image description here

関連する問題