使用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或科学计数法。
答案 0 :(得分:2)
fmsb::rateratio()
对正态分布的尾值进行不精确的计算,导致该值下溢为零。您可以自己解决此问题(与维护人员联系以{@ {1}}来提出对此软件包的改进建议,这是出于公共意愿)。
将函数的源代码保存到文件中
maintainer("fmsb")
在文本编辑器(或RStudio或其他工具)中编辑文件,然后更改第14行,即
dump("rateratio",file="my_rateratio.R")
到
p.v <- 2 * (1 - pnorm(abs(.CHI)))
(这是等效的,但计算更准确:请参见p.v <- 2 * pnorm(abs(.CHI), lower=FALSE)
或here)。然后读回文件:
?pnorm
(这将在全局工作区中创建source("my_rateratio.R")
的新版本,从而掩盖rateratio()
中的版本)。
现在,如果您重新运行代码,您会看到fmsb
是rr$p.value
。