This question显示了如何在markdown文件中循环/应用传单对象。我想做类似的事情,虽然我想添加额外的降价内容。
---
title: "Test"
output: html_document
---
```{r setup, echo=T,results='asis'}
library(leaflet)
library(dplyr) ### !!! uses development version with tidyeval !!!
library(htmltools)
##Add A Random Year Column
data(quakes)
quakes <- tbl_df(quakes) %>%
mutate(year = sample(2008:2010, n(), replace=TRUE))
```
```{r maps, echo=T,results='asis'}
createMaps <- function(year){
cat(paste("###", year, "\n"))
leaflet(quakes %>% filter(year == !!year)) %>%
addTiles() %>%
addMarkers(
lng = ~long,
lat = ~lat,
popup = ~as.character(mag))
cat("\n\n")
}
htmltools::tagList(lapply(as.list(2008:2010), function(x) createMaps(x) ))
```
如果我遗漏了cat
函数中的createMaps
语句,则此代码将打印所有三个映射。如果我输入cat
语句,我会得到降价,但没有地图。任何方式来组合两种类型的元素?
答案 0 :(得分:2)
问题是,在lapply返回结果列表之前,正在评估您的cat
语句。
删除cat
语句,将createMaps
功能更改为
createMaps <- function(year){
mymap <- leaflet(quakes %>% filter(year == !!year)) %>%
addTiles() %>%
addMarkers(
lng = ~long,
lat = ~lat,
popup = ~as.character(mag))
return(list(tags$h1(year), mymap))
}
并将tags$h1()
更改为您想要的任何标题大小(tags$h2()
,...)