You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:09:04