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

使用gtsummary的tbl_uvregression触发“尝试应用非函数”错误求助

问题原因与解决方法

你的错误核心原因是在线性回归(lm)模型中使用了exponentiate = TRUE参数,这个参数仅适用于需要对系数进行指数化转换的模型(如逻辑回归glm(method="binomial")、Cox比例风险模型coxph等)。线性回归的系数为原始效应值,不需要指数化,强行设置该参数会导致内部函数调用出错,触发"attempt to apply non-function"错误。

另外,你的代码存在变量覆盖问题:将tbl_uvregression的输出结果(gtsummary表格对象)赋值给了cars,这会覆盖之前的数据集对象,后续运行lm时如果使用该变量会报错,建议将数据处理与表格生成分开执行。

修正后的代码如下:

library(gtsummary)
library(tidyverse)
packageVersion("gtsummary")
# package 1.7.0

data("mtcars")

# 先处理得到数据集
cars_data <- mtcars %>% 
    dplyr::select(mpg, disp, cyl, hp) 

# 运行单变量回归表格,移除exponentiate参数
tbl_uvregression(
    data = cars_data,
    method = "lm",
    y = hp
)

# 单独执行线性回归(使用原始数据集)
lm(hp ~ mpg, data = cars_data)
lm(hp ~ disp, data = cars_data)
lm(hp ~ cyl, data = cars_data)

如果确实需要对线性回归系数做特殊转换(常规场景下不需要),可以在生成表格后通过modify_column()手动处理,但标准线性回归场景中,直接移除exponentiate = TRUE即可解决报错问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:09:58