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

无法安装R包ggsurvfit求助:权限及依赖版本兼容问题

问题:无法安装ggsurvfit包进行Kaplan-Meier生存分布可视化

我花了一整天尝试安装ggsurvfit包用来可视化Kaplan-Meier生存分布,使用RStudio,已安装RTools40(不确定路径是否影响),安装tidycmprsk时也遇到类似问题。

尝试过的安装命令

  • install.packages("ggsurvfit")
  • install.packages("ggsurvfit", type = "source")
  • library(remotes); remotes::install_github("ddsjoberg/ggsurvfit")
  • library(devtools); devtools::install_github("pharmaverse/ggsurvfit")
  • install.packages("ggsurvfit", repos = "https://cran.r-project.org")

错误信息

所有命令均返回警告:

Warning in install.packages :
installation of package ‘ggsurvfit’ had non-zero exit status

下载的源包存放路径:
C:\Users\CLAHM\AppData\Local\Temp\RtmpYl9d8e\downloaded_packages

执行library(ggsurvfit)时提示:

Error in library(ggsurvfit) : there is no package called ‘ggsurvfit’

已做的前置尝试

在C:\Users\CLAHM\路径下创建了包含PATH="${RTOOLS40_HOME}/usr/bin;${PATH}"的文本文件,执行Sys.which("make")返回"C:\rtools40\usr\bin\make.exe",但问题依旧。

核心报错细节

安装过程中两类关键错误:

  1. 权限/进程占用问题:更新cli、rlang、vctrs等依赖包时,提示cannot remove earlier installation, is it in use?和Permission denied,无法替换旧版本的.dll文件。
  2. 版本依赖不满足:
    • 安装lifecycle和ggplot2时,当前加载的rlang版本为1.0.2,要求≥1.1.0
    • 安装ggsurvfit时,当前加载的ggplot2版本为3.3.6,要求≥3.4.0

解决步骤

1. 关闭所有占用R包的进程

完全关闭RStudio及所有R相关进程(可通过任务管理器结束R.exe、RStudio.exe),确保依赖包文件未被占用。

2. 优先安装二进制版本依赖包

针对R4.0版本,优先安装兼容的二进制包避免编译问题:

install.packages(c("cli", "rlang", "vctrs", "lifecycle", "ggplot2"), type = "binary")

3. 安装兼容版ggsurvfit

若上述步骤完成后仍无法安装最新版,尝试安装与R4.0兼容的旧版本:

# 安装CRAN二进制版本
install.packages("ggsurvfit", type = "binary")
# 或从GitHub安装指定兼容版本
remotes::install_github("pharmaverse/ggsurvfit@v0.5.0")

4. 提升权限运行

右键以管理员身份启动RStudio,再尝试安装,避免权限不足导致文件替换失败。

5. 清理临时文件

删除临时源包目录C:\Users\CLAHM\AppData\Local\Temp\RtmpwXs30L\downloaded_packages,重新执行安装命令。


Kaplan-Meier生存分布可视化替代方案

1. survminer包(推荐)

基于ggplot2的生存分析可视化工具,功能全面:

install.packages("survminer")
library(survival)
library(survminer)

# 示例:绘制Kaplan-Meier曲线
fit <- survfit(Surv(time, status) ~ sex, data = lung)
ggsurvplot(fit, data = lung, pval = TRUE, conf.int = TRUE)

2. ggplot2基础绘图

手动提取生存数据后直接用ggplot2绘制:

library(survival)
library(ggplot2)

fit <- survfit(Surv(time, status) ~ sex, data = lung)
surv_data <- fortify(fit)

ggplot(surv_data, aes(x = time, y = surv, color = strata)) +
  geom_step() +
  geom_ribbon(aes(ymin = lower, ymax = upper, fill = strata), alpha = 0.2) +
  labs(x = "Time", y = "Survival Probability")

3. survival包原生绘图

无需额外依赖,样式简洁:

library(survival)
fit <- survfit(Surv(time, status) ~ sex, data = lung)
plot(fit, lty = 1:2, col = c("red", "blue"))
legend("topright", legend = c("Male", "Female"), lty = 1:2, col = c("red", "blue"))

内容的提问来源于stack exchange,提问作者clary_sage

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:39:50