考虑这两个t检验的P值

set.seed(1)
x <- c(rnorm(50,1), rnorm(50, 2))
y <- (c(rep("a", 50), rep("b", 50)))

t.test(x ~ y)$p.value

[1] 1.776808e-07

set.seed(2)
x <- c(rnorm(50), rnorm(50))
y <- (c(rep("a", 50), rep("b", 50)))

t.test(x ~ y)$p.value

[1] 0.3922354


第一个P值 0.001。如果P值恰好小于0.001,我是否可以让R打印P值小于0.001。如果P值正好大于0.001,我可以让R打印出实际的P值吗?因此,第一个t检验的结果应打印为"<0.001",第二个t检验的结果应打印为0.3922354

我正在使用knitr将论文的R代码转换为乳胶。我的规则是仅应将P值> 0.001打印为实际P值。

最佳答案

只需使用一条if语句:

p_val <- t.test(x,y)$p.value;
if(p_val>=0.001) {
  print(p_val)
} else {
  print("<0.001")
}

07-26 09:10
查看更多