在 `emmeans::joint_tests` 输出中将“:”替换为“x”
Posted
技术标签:
【中文标题】在 `emmeans::joint_tests` 输出中将“:”替换为“x”【英文标题】:Replace ":" with " x " in `emmeans::joint_tests` output 【发布时间】:2021-08-17 04:39:39 【问题描述】:我从 tex exchange 提出了这个问题,因为它在那里没有引起太多关注我得到的答案不适用于超过 3 行的表格。请看看我如何更改我的代码。感谢您的关注。 https://tex.stackexchange.com/questions/594324/how-to-replace-all-with-or-x-in-an-anova-table
library(emmeans)
library(kableExtra)
neuralgia.glm <- glm(Pain ~ Treatment * Sex * Age, family=binomial, data = neuralgia)
model term df1 df2 F.ratio p.value
Treatment 2 Inf 0 1.0000
Sex 1 Inf 0 0.9964
Age 1 Inf 0 0.9941
Treatment:Sex 2 Inf 0 1.0000
Treatment:Age 2 Inf 0 1.0000
Sex:Age 1 Inf 0 0.9942
Treatment:Sex:Age 2 Inf 0 1.0000
我想用 x 替换所有冒号并添加空间以便于查看。这就是我对gsub(":", " x ")
的尝试。 print(neuralgia.glm, export = T)
命令在编织时保持 p 值格式为 <0.0001
而不是 0
。
这段代码只给了我一个 x。使用sub
或gsub
做同样的事情。
joint_tests(neuralgia.glm) %>%
print(, export = T) %>%
gsub(":", " x ") %>%
kable()
这段代码用“x”替换了冒号,但它破坏了表格。
gsub( "\\:", " x ", print(neuralgia.glm, export = T)) %>%
kable()
【问题讨论】:
【参考方案1】:注意gsub()
的参数顺序将x =
作为第三个 参数,而不是第一个。所以你的管道不会工作。
解决方案:
library(emmeans)
neuralgia.glm <- glm(Pain ~ Treatment * Sex * Age, family=binomial, data = neuralgia)
#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
jt <- joint_tests(neuralgia.glm)
jt$`model term` <- gsub(":", " x ", jt$`model term`)
jt
#> model term df1 df2 F.ratio p.value
#> Treatment 2 Inf 0 1.0000
#> Sex 1 Inf 0 0.9970
#> Age 1 Inf 0 0.9951
#> Treatment x Sex 2 Inf 0 1.0000
#> Treatment x Age 2 Inf 0 1.0000
#> Sex x Age 1 Inf 0 0.9952
#> Treatment x Sex x Age 2 Inf 0 1.0000
由reprex package (v2.0.0) 于 2021-06-07 创建
【讨论】:
感谢您解释我的代码在哪里不合适,以及解决方案。以上是关于在 `emmeans::joint_tests` 输出中将“:”替换为“x”的主要内容,如果未能解决你的问题,请参考以下文章
NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记