R语言生存曲线绘图函数报错:参数restaging未找到
解决ggsurvfit生存曲线函数中参数无法识别的问题
问题根源
错误Error in is_quosure(quo) : object 'restaging' not found的核心原因是:函数中as_label(group_var)这一行没有正确捕获传入的裸变量参数。当以裸变量形式(比如restaging)传递列名时,需要使用{{}}(整洁评估语法)将其转换为可识别的引用对象,否则as_label无法解析该变量。
修正后的函数代码
# 建议先加载依赖包,避免函数内重复加载 library(ggsurvfit) library(survival) plt_survive <- function(data_in, time_var, event_var, group_var){ # 使用{{}}包裹group_var,正确捕获引用 p_tittle <- as_label({{group_var}}) p <- survfit2(Surv({{time_var}}, {{event_var}}) ~ {{group_var}}, data = data_in) %>% ggsurvfit(linewidth = 1) + add_confidence_interval() + add_risktable() + labs(title = p_tittle) # 可选:添加分组变量名作为标题 return(p) }
调用验证
使用你提供的df_test数据框调用函数:
plt_survive(data_in=df_test, time_var=time_to_event_yearmonth, event_var=dfs_event, group_var=restaging)
此时函数可正常识别restaging参数,生成带风险表的生存曲线。
补充说明
- 整洁评估语法
{{}}用于在函数中捕获用户传入的裸变量,确保函数能正确关联数据框中的列名 - 建议将包加载语句放在函数外部,避免每次调用函数时重复执行加载操作,提升运行效率
内容的提问来源于stack exchange,提问作者sahuno
相关产品推荐
相关产品推荐

