我正在尝试使用Rmarkdown将我的数据转换为html文档,目前我依赖于向量和索引的转换来解决我的问题。
虽然我的样本数据有4个观察值,但我的实际数据集有30多条记录,因此索引似乎很麻烦和不自然。
有没有一种更好的方法来按顺序取出这些元素?任何建议都是很棒的。
--
title: "Rmarkdown report"
output: html_document
---
```{r echo = FALSE}mydata <- data.frame(First = c("John","Hui","Jared"),Second = c("Smith","Chang","Jzu"),Sport = c("Football","Soccer","Ballet"),Age = c("12","13","12"),Smith=c(“微生物可能是居住在月球、火星或太阳系其他地方的未来殖民者的朋友,他们的目标是建立自给自足的家园。太空拓荒者,就像地球上的人一样,将需要被称为稀土元素的东西,这对现代技术至关重要。这17种元素,有令人望而生畏的名字,如Y、in、and和in,在地球外壳中分布稀少。没有稀土,我们就不会有用于手机和电动汽车的某些激光器、金属合金和强大的磁铁。但今天在地球上开采它们是一个艰巨的过程。它需要粉碎成吨的矿石,然后使用化学物质提取这些金属中的微量,这些化学物质会留下有毒废水的河流。
爱丁堡大学天体生物学教授查尔斯·S·科克尔说,“在国际空间站上进行的实验表明,一种潜在的更清洁、更有效的方法可以在其他领域发挥作用:让细菌来做从岩石中分离稀土元素的繁琐工作。这个想法是,生物学本质上是在催化一种反应,如果没有生物学,这种反应会非常缓慢地发生。”
在地球上,这样的生物开采技术已经被用于生产世界上10 %到20 %的铜,在一些金矿也是如此;科学家们已经发现了有助于从岩石中浸出稀土元素的微生物。
爱丁堡大学天体生物学教授查尔斯·S·科克尔说,“在国际空间站上进行的实验表明,一种潜在的更清洁、更有效的方法可以在其他领域发挥作用:让细菌来做从岩石中分离稀土元素的繁琐工作。这个想法是,生物学本质上是在催化一种反应,如果没有生物学,这种反应会非常缓慢地发生。”
在地球上,这种生物开采技术已经被用于生产世界上10 %到20 %的铜,在一些金矿也是如此;科学家们已经发现了有助于从岩石中浸出稀土元素的微生物。
first<- as.vector(mydata$First)
秒<- as.vector(mydata$Second)
年龄<- as.vector(mydata$年龄)
提交<- as.vector(mydata$ submission )
##
**First:** `r first[1]`   **Second:** `r sec[1]` <br>
**Age:** `r age[1]`
**submission** <br>
`r submission[1]`
***
**First:** `r first[2]`   **Second:** `r sec[2]` <br>
**Age:** `r age[2]`
**submission** <br>
`r submission[2]`发布于 2020-11-14 03:28:30
下面是一种迭代所有行的方法
---
title: "Rmarkdown report"
output: html_document
---
```{r echo = FALSE}使用上面的数据
mydata <- data.frame(...)
定义模板(使用data.frame中的列名)
模板<- "First:r First Second: template
年龄:r Age
提交
r submission“
现在为data.frame的每一行处理模板
src <- lapply(1:nrow(mydata),function(i) {
knitr::knit_child(text=template,envir=mydatai,,quiet=TRUE)
})
# Print result to document
`r knitr::knit_child(text=unlist(src))`在这里,我们使用knit_child获取模板字符串,然后将其用于data.frame的每一行。我在这里使用了一个技巧,将data.frame的行作为环境传入,这样模板就可以将所有列看作变量,所以我们不需要创建所有data.frame列的矢量版本。
发布于 2020-11-14 03:20:41
如果我们需要在全局环境中创建对象,请将数据列子集到一个list中,重命名它并使用list2env
nm1 <- c('First', 'Second', 'Age', 'submission')
nm2 <- c('first', 'sec', 'age', submission')
list2env(setNames(unclass(mydata[nm1]), nm2), .GlobalEnv)发布于 2020-11-14 15:55:25
这是我对你上一个问题的回答:
您可以使用cat将HTML代码添加到R标记块中,以便遍历数据。
重要
您必须向{r}添加results = "asis"
下面是循环:
{r results="asis", echo = FALSE}
i = 1
NR_OF_ROWS <-
nrow(data) # number of rows that the loop will go through
while (i <= NR_OF_ROWS) {
cat("\n **First:** ", data[i, 1], "  **Last:** ", data[i, 2], "<br> \n")
cat("\n **Age:** ", data[i, 3], "  **Sport:** ", data[i, 4], "<br> \n")
cat("\n **submission** ", data[i, 5], "<br> \n")
# cat("\n <br> \n") extra space between entries
cat("\n *** \n") line between entries
i = i + 1
}结果如下:

https://stackoverflow.com/questions/64826644
复制相似问题