R中使用yearmonth过滤tsibbledata::vic_elec出现Rcpp报错如何解决
报错原因
该错误和你编写的代码逻辑无关,本质是R包版本不兼容导致的:Rcpp_precious_remove是Rcpp 1.0.7及以上版本才提供的内置函数,你本地环境中要么Rcpp版本过旧,要么依赖Rcpp的时间处理、数据操作类包(比如tsibble、lubridate)是基于高版本Rcpp编译,但实际运行时加载的是低版本Rcpp,就会触发这个报错。
解决步骤
- 先重启你的R/RStudio会话,清空所有已经加载的包,避免旧版本包残留在内存中干扰重装。
- 安装最新版
Rcpp,执行代码:
install.packages("Rcpp")
安装时如果提示是否要重启会话、是否允许从源码编译,选择同意即可。
- 重装你这个场景下所有依赖
Rcpp的相关包,避免其他包也存在版本适配问题,执行代码:
install.packages(c("tsibble", "tsibbledata", "lubridate", "dplyr"))
- 重装完成后重新加载所需包,再运行你原来的代码即可正常执行。
验证方法
如果操作后还是报错,可以执行packageVersion("Rcpp")查看当前Rcpp版本,确认版本号≥1.0.7即可。
内容的提问来源于stack exchange,提问作者user9085964
相关产品推荐
相关产品推荐

