metagen等包在R 4.3.2中无法使用的原因及安装方法咨询
问题背景
需要绘制pcurve,因此依赖dmetar包,但dmetar声明的依赖包(metagen、metacont、metacor、metainc、metabin)在R 4.3.2中无法通过常规方法安装,尝试过以下命令均失败:
install.packages("metagen") install.packages('path/metagen_1.0.tar.zip', repos=NULL, type='source') install.packages("metagen", dependencies = TRUE) pak::pkg_install("metagen", dependencies = TRUE)
无法安装的原因
- 包已被整合移除:这些独立的meta分析工具包(
metagen等)是早期版本的细分工具,后来官方将它们的全部功能整合到了meta包中,CRAN官方已经移除了这些旧包,因此无法通过install.packages直接获取。 - 版本兼容性问题:R 4.3.2是较新版本,对旧包的源码编译环境要求更高,旧包的代码未适配新R的API,直接安装源文件会出现编译错误或依赖缺失。
可行的安装方法
方法1:安装整合后的meta包(推荐)
dmetar原本依赖的旧包功能已完全迁移到meta包中,只需安装meta即可满足dmetar的依赖需求,无需单独安装旧包:
# 先安装meta包 install.packages("meta") # 再安装dmetar install.packages("dmetar")
安装完成后,加载dmetar并测试pcurve功能:
library(dmetar) # 用示例数据测试pcurve绘制 data("dat.bcg") ma <- metagen(tpos, tneg, cpos, cneg, data = dat.bcg, sm = "RR") pcurve(ma)
方法2:使用旧版本R安装旧包(仅特殊需求使用)
如果必须使用原始的metagen等旧包,需要降级到这些包支持的R版本(如R 3.6.3),然后从CRAN归档安装:
# 替换为对应旧包的归档链接 packageurl <- "https://cran.r-project.org/src/contrib/Archive/metagen/metagen_1.0.tar.gz" install.packages(packageurl, repos = NULL, type = "source")
注意:旧R版本存在安全风险,且与多数新包兼容性差,非必要不推荐。
方法3:手动修改dmetar的依赖(进阶用户)
若不想降级R版本,可修改dmetar的依赖声明,将旧包替换为meta后本地编译:
- 从CRAN下载
dmetar的源码包(.tar.gz格式) - 解压后打开
DESCRIPTION文件,将Depends或Imports字段中的metagen、metacont等包替换为meta - 在R中安装修改后的包:
install.packages("path/to/modified/dmetar", repos = NULL, type = "source")
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

