首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用gtsummary包为tbl_regression表中的趋势p值添加测试

如何使用gtsummary包为tbl_regression表中的趋势p值添加测试
EN

Stack Overflow用户
提问于 2020-10-29 05:54:35
回答 1查看 299关注 0票数 1

我目前正在尝试添加一个专栏,其中包含评估线性趋势线性回归模型的p值。我在文档中找不到这个问题的解决方案。有没有人找到解决这个问题的办法?如果有,你能和我分享一下吗?

我在下面包含了虚拟数据和代码:

代码语言:javascript
运行
复制
 # install dev versions
remotes::install_github("ddsjoberg/gtsummary@mice_nnet")
remotes::install_github("larmarange/broom.helpers")

# load packages
library(gtsummary)
library(nnet)

theme_gtsummary_compact()

# dummy data 
crime <-data.frame(city = sample(as.factor(c(1, 2, 3,4)),13000,replace = TRUE),
                   sex = sample(c("Male", "Female"),13000,replace = TRUE),
                   year = sample(as.numeric(sample(10:70, 13000, replace = TRUE)))
)

# serperate data sets by sex
crime_f <- crime %>%
  filter(sex == "Female")

crime_m <- crime %>%
  filter(sex == "Male")

# build model for females
mod_f <- lm(year ~ city, data = crime_f, na.action=na.exclude) 

# build model for males
mod_m <- lm(year ~ city, data = crime_m, na.action=na.exclude)

# linear trend test between year and city
# females
mod2_f <- lm(year ~ as.numeric(city), data = crime_f, na.action=na.exclude)

# males
mod2_m <- lm(year ~ as.numeric(city), data = crime_m, na.action=na.exclude)

# make regression table from results
# femlaes
tbl_regression(mod_f,
               exponentiate = TRUE) %>%
  modify_header(estimate ~ "**OR**")

# males
tbl_regression(mod_m,
               exponentiate = TRUE) %>%
  modify_header(estimate ~ "**OR**")


# lm model tabulated with gtsummary  
tbl <- tbl_merge(
  tbls = list(mod_f, mod_m),
  tab_spanner = c("**Female**", "**Male**")
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-30 02:26:27

要做到这一点,最简单的方法是构建两个模型(一个是规则的,另一个是将变量视为连续的),然后将表合并在一起。下面是一个例子。

代码语言:javascript
运行
复制
# load packages
library(gtsummary)
theme_gtsummary_compact()

# model cyl as a categorical 
mod1 <- lm(mpg ~ cyl, data = mtcars %>% dplyr::mutate(cyl = factor(cyl)))
# model cyl as continuous (p-trend)
mod2 <- lm(mpg ~ cyl, data = mtcars)

# summarize primary model
tbl1 <- tbl_regression(mod1)
# summarize model with p-trend, and hide the estimate and CI
tbl2 <- tbl_regression(mod2) %>%
  modify_table_header(c(estimate, ci), hide = TRUE) %>%
  modify_header(p.value ~ "**p-trend**")

# merge primary model and p-trend
tbl_merge(list(tbl1, tbl2)) %>%
  # remove spanning header
  modify_spanning_header(everything() ~ NA)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64581870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档