2016-05-11 3 views
0

Rmdファイルで使用するためにRを使用して動的コンテンツを生成したいと考えています。Rmarkdown動的コンテンツ

私は文字のベクトルcharsを持っていると言うと、どのようにベクトルの各項目から文書の段落を生成できますか?

次のことを考えてみましょう: '、文字列「ABC」を含む、

```{r echo=TRUE} 
chars = c("ABC","DEF","GHI") 
for(char in chars){ print(char) } 
``` 

プログラミング出力としてフォーマット上記の農産物Rの出力を、が、私は実際に他の言葉で、文書の内容としてそれをしたい、3つの段落DEF」と 『GHI』はそれぞれ

+0

基本的に、charsの値を連結するが、各要素の間に挿入された新しい段落を作成する改行セパレータと連結したい。右? – Elin

答えて

0

これは最初の関数を作成し、私が使用して終了ソリューションです:

printSection = function(content){ 
    if(any(content != '')){ 
    cat(gsub(pattern = "\n", replacement = " \n\n", x = paste(content,collapse="\n"))) 
    } 
} 

次に、次のように使用してください。

```{r echo=FALSE,result='asis'} 
printSection(c("ABC","DEF","GHI")) 
``` 
1

あなたはこのような

```{r echo=TRUE, results='asis'} 
chars = c("ABC","DEF","GHI") 
for(char in chars){ cat('<p>', char, '</p>') } 
``` 
+0

文書がpdf/latexの場合はどうなりますか? –

+0

問題ではありませんか? – lukeA

1

何かがあなたが望むもののために働くだろう行うことができます。

```{r, echo=FALSE} 
# Load your libraries here 

chars = c("ABC", "DEF", "HIJ") 
newstring<-paste(chars, "", collapse = "", sep = " \n") 

``` 
`r newstring` 

Rmarkdownは、ハードリターンを強制するために行末に2つの空白を使用します。しかし、2つのスペースがラインの最後にあることを実際に確認するには、新しいラインをセップに配置する必要があります。

+0

私は解決策に非常によく似て –

0

これまでの回答を組み合わせて、より複雑なHTMLを作成することができます。

```{r echo=TRUE, results='asis'} 

chars = c("ABC","DEF","GHI") 

for(char in chars){ 


    cat(paste("<div class='div1'><div class='div2'>", char,"</div></div>"), sep = "") 

} 

``` 

あなたのdivのをスタイルにしたい場合は、ちょうどあなたのヘッダーでstyle.cssを含める:

--- 
title: "" 
author: "" 
date: "" 
output: 
    html_document: 
    css: style.css 

--- 
関連する問題