r - 如何让rateratio()返回更多p值数字?

标签 r p-value

使用fmsb计算发病率比率。

示例:

rr <- rateratio(853, 7703, 284, 3508)
rr
Cases   Person-time
Exposed    853     284
Unexposed 7703    3508
Total       8556    3792

发生率比估计及其显着性概率

data: 853 7703 284 3508
p-value <2.2e-16
95 percent confidence interval:<br/>
1.274426 1.468068
sample estimates:
[1] 1.367824

然后,当我尝试返回值以稍后存储在表中时:

p <- rr$p.value
p
[1] 0

如何更改格式以便返回具有更多位数的 p 值?最好是 3 或 4 或以科学计数法表示。

最佳答案

fmsb::rateratio() 对正态分布的尾部值进行不精确的计算,导致该值下溢为零。您可以自己修复此问题(出于公共(public)精神,联系维护者 (maintainer("fmsb")) 来建议对软件包进行此改进)。

将函数的源代码保存到文件中:

dump("rateratio",file="my_rateratio.R")

在文本编辑器(或 RStudio 等)中编辑文件并更改第 14 行,即

p.v <- 2 * (1 - pnorm(abs(.CHI)))

p.v <- 2 * pnorm(abs(.CHI), lower=FALSE)

(这是等效的,但更准确的计算:请参阅 ?pnormhere )。然后读回文件:

source("my_rateratio.R")

(这会在您的全局工作区中创建 rateratio() 的新版本,并屏蔽 fmsb 中的版本)。

现在,如果您重新运行代码,您将看到 rr$p.value2.893638e-18

关于r - 如何让rateratio()返回更多p值数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54130604/

相关文章:

r - left_join 在键有空格时产生 NA

r - 如何运行 Kaplan-Meier (KM) 分析来确定两组之间的生存差异?

statistics - Octave mann-whitney/u_test p 值混淆

R 小 p 值

r - 如何在ggplot2中更改自定义图例中的线条角度

r - 在R中将目录路径作为参数传递

go - 如何得到相关系数的P值

r - 为什么 is.vector() 为列表返回 TRUE?

r - 动态创建的绘图不会与四开本中的节标题交替