簡體   English   中英

在R中操縱輸出的p值

[英]Manipulating the value of p-value of output in R

假設

data11 <- c(0.5388417, 0.7263466, 0.3612457, 0.2495263, 0.1780413)
data22 <- c(0.674262245, 0.659560230, 0.001548212, 0.501228052, 0.802885484)
d=as.data.frame(cbind(dat=c(data11,data22),level=c(rep(1,length(data11)),rep(2,length(data22)))))

然后,我使用功能oneway_test來獲取pje值

library(coin)
oneway_test(d$dat~as.factor(d$level))

我得到:

    Asymptotic Two-Sample Fisher-Pitman Permutation Test

data:  d$dat by as.factor(d$level) (1, 2)
Z = -0.70257, p-value = 0.4823
alternative hypothesis: true mu is not equal to 0

但是,如何保存P值? 嘗試執行此操作: d$p.value 我不明白

謝謝

我猜這不是很簡單,因為打印結果(p值)不包含在函數oneway_test的返回對象中,而是作為副作用打印的。 您可以使用一些正則表達式作為解決方法:

output <- oneway_test(d$dat~as.factor(d$level))

FindPValue = function(output){
  temp <- capture.output(output)
  return(as.numeric(gsub(".*p-value = ", "", temp[5])))
}

FindPValue(output)
#### [1] 0.4823

感謝Adam Quek提供有關capture.output的建議

檢查硬幣包裝的文件。 您可以使用pvalue函數返回pvalue:

results <- oneway_test(d$dat~as.factor(d$level))
pval <- pvalue(results)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM