首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于非加权数据的加权gt表的修改

基于非加权数据的加权gt表的修改
EN

Stack Overflow用户
提问于 2022-08-03 18:08:32
回答 2查看 82关注 0票数 1

我正在创建多个带有多个变量的加权表,我很好奇是否可以根据未加权的值来更改加权值。具体来说,当n<2时,用NA替换单元格。

示例数据:

代码语言:javascript
复制
df <- data.frame(a= c("m","f","f","m", "m", "f", "f"),b= c("g1","g2","g1","g2", "g2", "g2", "g2"),
                 weight = c(1.1, 0.8, 2.2, 4, 3, 0.3, 1.9))

> df
  a  b weight
1 m g1    1.1
2 f g2    0.8
3 f g1    2.2
4 m g2    4.0
5 m g2    3.0
6 f g2    0.3
7 f g2    1.9

表:

代码语言:javascript
复制
library(gtsummary)
library(srvyr)

tbl_summary_object <- df %>%
  as_survey_design(1, weight = weight) %>%
  gtsummary::tbl_svysummary(
    missing="no",
    by=a,
    include=-weight,
    label=list(
      b ~ "group"
    ),
    percent="row"
  )

我希望基于未加权的单元来修改单元:

代码语言:javascript
复制
> table(df$a, df$b)
   
    g1 g2
  f  1  3
  m  1  2

我知道"by“未加权变量可以访问tbl_summary_object$df_by。但是,我希望根据n<2在未加权数据中更改每个单元。任何指示都将不胜感激。

EN

Stack Overflow用户

发布于 2022-08-03 18:58:24

我们可以这样做:

如果我正确地理解了您的意思,那么我们可以使用tbl_summary_object[1]$table_body访问我们的对象并使用case_when来操作它,我们还使用了parse_number,它总是提取第一个数字,然后我们可以进行比较n< 2:

代码语言:javascript
复制
library(gtsummary)
library(dplyr)
library(readr) # parse_number

tbl_summary_object[1]$table_body  <- tbl_summary_object[1]$table_body %>% 
  mutate(across(c(stat_1, stat_2), ~ case_when(parse_number(.) < 2 ~ "NA",
                                               TRUE ~ .)))

tbl_summary_object

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

https://stackoverflow.com/questions/73225939

复制
相关文章

相似问题

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