处理变量中的小值时 TableOne 和 gtsummary 的问题

Issue with TableOne and gtsummary when Handling Small Values in Variables

提问人:G_biof 提问时间:11/13/2023 最后编辑:FriedeG_biof 更新时间:11/15/2023 访问量:24

问:

晚上好!

我目前在尝试创建具有非常小数量级的变量(例如 e−8e−8)的表时遇到了 TableOne(和 gtsummary)的挑战。由于这些值的最小大小,TableOne 似乎将这些值视为零。

下面是一个可重现的示例:

# library(gtsummary)
library(tableone)
data(iris)
iris$rands <- 1e-9 * runif(n = nrow(iris))
tableone::CreateTableOne(data = iris) |> print()

                          
                           Overall     
  n                         150        
  Sepal.Length (mean (SD)) 5.84 (0.83) 
  Sepal.Width (mean (SD))  3.06 (0.44) 
  Petal.Length (mean (SD)) 3.76 (1.77) 
  Petal.Width (mean (SD))  1.20 (0.76) 
  Species (%)                          
     setosa                  50 (33.3) 
     versicolor              50 (33.3) 
     virginica               50 (33.3) 
  rands (mean (SD))        0.00 (0.00) 

在此示例中,我想显示变量的实际平均值,即使它非常小,而不是将其简化为 0。

有关如何使用 TableOne 或 gtsummary 处理此问题的任何建议将不胜感激!

谢谢!

R 统计数据

评论


答:

0赞 Friede 11/13/2023 #1

看一看:?print.TableOne()

# library(gtsummary)
library(tableone)
data(iris)
iris$rands <- 1e-9 * runif(n = nrow(iris))
tableone::CreateTableOne(data = iris) |> print(contDigits = 10L)

                          
                           Overall                    
  n                                 150               
  Sepal.Length (mean (SD)) 5.8433333333 (0.8280661280)
  Sepal.Width (mean (SD))  3.0573333333 (0.4358662849)
  Petal.Length (mean (SD)) 3.7580000000 (1.7652982333)
  Petal.Width (mean (SD))  1.1993333333 (0.7622376690)
  Species (%)                                         
     setosa                          50 (33.3)        
     versicolor                      50 (33.3)        
     virginica                       50 (33.3)        
  rands (mean (SD))        0.0000000005 (0.0000000003)

它们不会减少到零。相反,由于缺省值为 in ,因此不会显示它们。contDigitsprint.TableOne()

评论

0赞 G_biof 11/13/2023
谢谢!奇怪的是,我不知道咨询对象的具体方法。我也修改了 formatOptions 以科学记数法显示它,但它似乎保留了非必要(不必要的)十进制数字。你知道是否有解决方法吗?查阅印刷品。TableOne 似乎数字不可用,e 当我修改第一个 contDigits 时,它再次将其减少到 0。tableone::CreateTableOne(data = iris) %>% print(contDigits = 15L, formatOptions= list(scientific = TRUE))
0赞 Friede 11/13/2023
这是另一个问题。并且无法从您向我们展示的内容中复制。我想我的帖子回答了你的问题。无论如何,如果你没有找到任何解决方案,只需将各个列(变量)与一个常量相辅相成,并报告你的方法。
1赞 Friede 11/13/2023
对链接的解释 在链接的解释下。有很多选项,例如 list(zero.print = NULL)。科学记数法不是你在 Q 中提到的任何东西。formatOptionsformat()...prettyNum()