stringi是否仍为tidyverse的依赖包?
问题结论
你的理解存在偏差,相关PR移除的是tidyr包对stringi的直接依赖,并非整个tidyverse生态移除了stringi依赖。
细节说明
- 你查阅的PR属于tidyr包的代码变更记录:从tidyr 1.2.0版本开始,开发团队将原本直接调用
stringi实现的字符串处理逻辑,改为调用stringr包的对应能力,因此tidyr不再在依赖声明中直接列出stringi。 - 但
stringr本身强依赖stringi实现所有核心字符串功能,而stringr是tidyverse的核心内置组件,安装完整tidyverse时依然会拉取安装stringi,这也是你安装过程中仍然会碰到stringi加载/安装耗时久的根本原因。 stringi安装耗时长是普遍存在的已知情况:如果从源码编译安装该包,默认需要从境外源下载体积较大的ICU语料库,网络连接质量差时耗时数分钟到十余分钟都属于正常范围,和本地配置错误无关。- 对应的提速方案很明确:优先选择对应操作系统的预编译二进制包安装,避免源码编译流程;也可以提前配置国内CRAN镜像,安装
stringi时指定国内镜像的ICU资源地址,能将安装时长压缩到几十秒级别。 - 如果日常使用不需要tidyverse全量功能,也可以按需单独安装需要的组件(比如
dplyr、readr这类不依赖stringr的包),即可跳过stringi的安装步骤。
内容的提问来源于stack exchange,提问作者moreQthanA
相关产品推荐
相关产品推荐

