如何移除knitr生成内容中的处理进度百分比?
解决R Markdown中Leaflet地图加载前的进度百分比显示问题
我来帮你搞定这个烦人的进度条问题~你遇到的这个1-100%的进度提示,其实不是来自dplyr或者Leaflet的加载过程,而是tigris包在下载地理数据时的默认进度提示——你用的state_legislative_districts()函数会从US Census Bureau拉取数据,这个过程默认会显示下载进度。
下面给你两个语法层面的解决方案,亲测有效:
方案1:全局禁用tigris的进度提示
在代码块开头添加tigris专属的选项设置,一次性解决所有tigris下载的进度提示,还能顺便开启缓存让下次运行更快:
{r, echo=FALSE, warning=FALSE, message=FALSE, cache=TRUE, error=FALSE, purl=FALSE} options(dplyr.show_progress = FALSE) # 关键:禁用tigris下载进度,同时开启本地缓存 options(tigris_progress = FALSE, tigris_use_cache = TRUE) setwd("~/Desktop") library(leaflet) library(readxl) library(dplyr) library(rgdal) library(tigris) library(sf) ##load tigris districts moLower <- state_legislative_districts("29", house = "lower") moUpper <- state_legislative_districts("29", house = "upper")
重点就是options(tigris_progress = FALSE),这个选项专门控制tigris包的下载进度显示;tigris_use_cache = TRUE会把下载的地理数据存在本地,下次运行就不用重新下载,自然也不会有进度提示了。
方案2:针对单个函数调用禁用进度
如果你不想全局设置,也可以在调用state_legislative_districts()时直接加参数,精准控制这两个请求:
# 在函数里直接指定progress=FALSE moLower <- state_legislative_districts("29", house = "lower", progress = FALSE) moUpper <- state_legislative_districts("29", house = "upper", progress = FALSE)
为啥之前的设置没用?
你之前加的echo=FALSE、message=FALSE这些是控制R Markdown的输出内容(比如不显示代码块、警告信息),但这个进度提示是函数运行时的控制台进度输出,不属于常规的message/warning;而dplyr.show_progress = FALSE只对dplyr的操作(比如批量mutate、filter)生效,管不到tigris的下载过程~
内容的提问来源于stack exchange,提问作者drhodes
相关产品推荐
相关产品推荐

