簡體   English   中英

如何計算48列的p值並保存結果

[英]how to calculate p-value for 48 columns and save the results

我有兩個18×48數據集。 一個用於死者,另一個用於生存。 兩者具有相同的列名(CNP1,CNP2,...,CNP48)。 我想計算每個CNP的P值。 我正在使用的功能如下:

t.test(died_CNP $ CNP1,survived_CNP $ CNP1)[3]-如何一次對48列使用此功能並將結果保存在變量中(p1,p2,...,p48)?

您可以在列上循環。

 pVals <- numeric()
 for(i in 1:ncol(died_CNP))
   pVals[i] <- t.test(died_CNP[,i],survived_CNP[,i])$p.value

所得的pVals將是長度為48的數字矢量。 建議使用p.adjust調整您的p值,以避免多重比較問題

 pValsAdjusted <- p.adjust(pVals)

這對於評論來說太長了,但擴展了Gregor的答案。 關鍵區別在於它在不增長對象的情況下構造了for循環。

pVals  <- vector ("numeric", length = ncol (died_CNP))
for (i in seq_along (pVals)){
  pVals[i] <- t.test(died_CNP[[i]], survived_CNP[[i]])$p.value
}

或者您可以將其向量化

pVals <- vapply (seq_along (died_CNP),
          function (i){
            t.test(died_CNP[,i],survived_CNP[,i])$p.value
          },
          numeric(1))

(在手機上輸入,未經測試的代碼)

暫無
暫無

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

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