簡體   English   中英

在 Rstudio 中執行 Shapiro-Wilk 測試后,如何僅 select p.value > 0.05?

[英]How to select only the p.value >0.05 after performing Shapiro-Wilk test in Rstudio?

在 Rstudio 中執行 Shapiro-Wilk 測試后,我如何才能 select 只有 p.values >0.05。 我有一個 92 列和 300 行的 dataframe,所以我不想一個接一個地執行此操作。

我確實設法對我的數據進行了 shapiro.test,這導致每列有 92 個統計數據和 p.value 一個。 有些 p.value < 0.05,有些 > 0.05。 有沒有辦法對 select 只有 p.value > 0.05 進行進一步分析?

謝謝,巴里

您的問題沒有提供樣本數據,所以我將使用 R 中的attitude數據。

根據您寫的內容,我解釋您在數據集上應用並在每一列上運行shapiro.test() 我的回答假設這種方法。

我確實設法對我的數據進行了 shapiro.test,這導致每列有 92 個統計數據和 p.value 一個

如果您使用lapply() ,則 output 將是 Shapiro-Wilks 測試的結果列表,每列一個結果。 我們需要做的就是根據 p 值對這個列表進行子集化。

# example data
attitude

# run the Shapiro-Wilks test on each column, save the output
results <- lapply(attitude, shapiro.test)

#subset to just results where p > 0.05
subset_vector  <- sapply(results, function(x) x$p.value > .05)
results_subset <- results[subset_vector]

# alternatively, do the subset on one line
results[sapply(results, function(x) x$statistic > .05)]

如您所見,此方法使用sapply()檢查每列的 output 的 p 值是否 > 0.5。 生成的命名向量對於您要用於更多分析的每一列都有一個TRUE 在示例代碼中,這是attitude$critical列,它被排除在 results_subset results_subset之外。

暫無
暫無

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

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