我想使用R來生成用於Rmd文件的動態內容。Rmarkdown動態內容
可以說我有一個字符向量,chars
,我該如何從向量中的每個項目生成一個文檔段落?
考慮以下幾點:
```{r echo=TRUE}
chars = c("ABC","DEF","GHI")
for(char in chars){ print(char) }
```
以上產生R輸出,格式爲編程輸出,但其實我是想它作爲文檔內容,換言之,三段,包含字符串「ABC」,' DEF」和‘分別
我想使用R來生成用於Rmd文件的動態內容。Rmarkdown動態內容
可以說我有一個字符向量,chars
,我該如何從向量中的每個項目生成一個文檔段落?
考慮以下幾點:
```{r echo=TRUE}
chars = c("ABC","DEF","GHI")
for(char in chars){ print(char) }
```
以上產生R輸出,格式爲編程輸出,但其實我是想它作爲文檔內容,換言之,三段,包含字符串「ABC」,' DEF」和‘分別
這是我最終使用的解決方案,首先創建一個功能:
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"))
```
GHI’你可以做
```{r echo=TRUE, results='asis'}
chars = c("ABC","DEF","GHI")
for(char in chars){ cat('<p>', char, '</p>') }
```
如果文件是pdf/latex,該怎麼辦? –
無所謂? – lukeA
像這樣的事情會爲你想要的工作。
```{r, echo=FALSE}
# Load your libraries here
chars = c("ABC", "DEF", "HIJ")
newstring<-paste(chars, "", collapse = "", sep = " \n")
```
`r newstring`
Rmarkdown在行的末尾使用兩個空格來強制返回。但是你需要將新行放在你的sep中,以確保這兩個空格位於行尾。
與我最終使用的解決方案非常相似 –
您可以結合以前的答案來創建更復雜的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
---
所以基本上你想要連接字符的值,但是與換行符分隔符會導致它在每個元素之間插入一個新的段落。對? – Elin