将数据库打印为文本
Printing a database as text
我是 R Markdown 新手。
我有一个数据库如下:
text <- c("aaa","bbb", "ccc")
year <- c(2003,2004,2005)
author <- c("MV", "RV", "MV")
db <- as.data.frame(cbind(text, year, author))
我想打印一个要点如下:
aaa
2003, MV
bbb
2004, RV
ccc
2005, MV
我试过如下:
- `r db[1, 1]`
- `r db[1, 2]`
- `r db[1, 3]`
- `r db[2, 1]`
- `r db[2, 2]`
- `r db[2, 3]`
- `r db[3, 1]`
- `r db[3, 2]`
- `r db[3, 3]`
有没有办法自动完成而不列出每一行?
您可以编写将数据打印为降价文本的 R 代码,例如使用 glue:
library(glue)
text <- c("aaa","bbb", "ccc")
year <- c(2003,2004,2005)
author <- c("MV", "RV", "MV")
db <- as.data.frame(cbind(text, year, author))
glue_data(
db,
"* {text} ",
"{year} {author}",
.sep = "\n"
)
#> * aaa
#> 2003 MV
#> * bbb
#> 2004 RV
#> * ccc
#> 2005 MV
如果你把它放在带有选项 results='asis'
的 RMarkdown 块中,生成的 markdown 将包含在你的编织文档中。
虽然 Joe Roe 的回答非常好,但下面是针对像我这样不喜欢安装软件包的人的解决方案 ;)
列表前一节中:
```{r echo=FALSE}
manually_assembled_list <- paste0(
paste0("* ", db$text, " \n"),
paste0(db$year, ", ", db$author, " \n"),
collapse=""
)
```
然后在 Rmd 正文中:
`r manually_assembled_list`
我是 R Markdown 新手。 我有一个数据库如下:
text <- c("aaa","bbb", "ccc")
year <- c(2003,2004,2005)
author <- c("MV", "RV", "MV")
db <- as.data.frame(cbind(text, year, author))
我想打印一个要点如下:
aaa
2003, MV
bbb
2004, RV
ccc
2005, MV
我试过如下:
- `r db[1, 1]`
- `r db[1, 2]`
- `r db[1, 3]`
- `r db[2, 1]`
- `r db[2, 2]`
- `r db[2, 3]`
- `r db[3, 1]`
- `r db[3, 2]`
- `r db[3, 3]`
有没有办法自动完成而不列出每一行?
您可以编写将数据打印为降价文本的 R 代码,例如使用 glue:
library(glue)
text <- c("aaa","bbb", "ccc")
year <- c(2003,2004,2005)
author <- c("MV", "RV", "MV")
db <- as.data.frame(cbind(text, year, author))
glue_data(
db,
"* {text} ",
"{year} {author}",
.sep = "\n"
)
#> * aaa
#> 2003 MV
#> * bbb
#> 2004 RV
#> * ccc
#> 2005 MV
如果你把它放在带有选项 results='asis'
的 RMarkdown 块中,生成的 markdown 将包含在你的编织文档中。
虽然 Joe Roe 的回答非常好,但下面是针对像我这样不喜欢安装软件包的人的解决方案 ;)
列表前一节中:
```{r echo=FALSE}
manually_assembled_list <- paste0(
paste0("* ", db$text, " \n"),
paste0(db$year, ", ", db$author, " \n"),
collapse=""
)
```
然后在 Rmd 正文中:
`r manually_assembled_list`