来自数据框的 R knitr 有序列表
R knitr ordered list from dataframe
我正在尝试将 R data.frame 列作为有序列表嵌入到我的 knitr
pdf 输出中。到目前为止,我最好的尝试是:
```{r df, echo=FALSE, results='asis'}
df <- read.csv2(file.path(filePath,'data.csv'))
for (i in nrow(df)){
print(paste(i, '. ', df[i,3]))
}
```
导致此输出:
[1] “8 . At vero eos et accusam et justo duo dolores et ea rebum.”
我希望这是一个适合普通文本输出的八点有序列表。有人知道如何实现吗?
使用cat()
代替print()
,例如
cat(paste(i, '. ', df[i,3]), '\n')
实际上您不需要递增 i
,因为 Pandoc 不关心列表中的实际数字(这可能有点令人惊讶)。您可以只对所有项目使用 1
,例如
1. foo
1. bar
因此您可以将 for 循环替换为
cat(paste('1.', df[, 3]), sep = '\n')
如果要打印markdown列表,可以使用pander
包中的相关辅助函数,它提供了很多方便的R->markdown转换方式。快速演示:
> pandoc.list(head(rownames(mtcars)), style = 'ordered')
1. Mazda RX4
2. Mazda RX4 Wag
3. Datsun 710
4. Hornet 4 Drive
5. Hornet Sportabout
6. Valiant
<!-- end of list -->
我正在尝试将 R data.frame 列作为有序列表嵌入到我的 knitr
pdf 输出中。到目前为止,我最好的尝试是:
```{r df, echo=FALSE, results='asis'}
df <- read.csv2(file.path(filePath,'data.csv'))
for (i in nrow(df)){
print(paste(i, '. ', df[i,3]))
}
```
导致此输出:
[1] “8 . At vero eos et accusam et justo duo dolores et ea rebum.”
我希望这是一个适合普通文本输出的八点有序列表。有人知道如何实现吗?
使用cat()
代替print()
,例如
cat(paste(i, '. ', df[i,3]), '\n')
实际上您不需要递增 i
,因为 Pandoc 不关心列表中的实际数字(这可能有点令人惊讶)。您可以只对所有项目使用 1
,例如
1. foo
1. bar
因此您可以将 for 循环替换为
cat(paste('1.', df[, 3]), sep = '\n')
如果要打印markdown列表,可以使用pander
包中的相关辅助函数,它提供了很多方便的R->markdown转换方式。快速演示:
> pandoc.list(head(rownames(mtcars)), style = 'ordered')
1. Mazda RX4
2. Mazda RX4 Wag
3. Datsun 710
4. Hornet 4 Drive
5. Hornet Sportabout
6. Valiant
<!-- end of list -->