忽略 R shapiro.test 包中的警告= stats

问题描述 投票:0回答:1

我必须在 R 中对一些不太好的数据运行 Shapiro-Wilk 测试...

因为我的数据具有相同的 3 个站值(OF 和 EX),所以 shapiro.test(package = stats)返回此错误

“shapiro.test 中的错误(df$Value[df$STATION ==“EX”]): 所有“x”值都相同”

有什么办法可以覆盖这个错误吗?

示例数据

df = structure(list(STATION = structure(c(3L, 3L, 3L, 2L, 2L, 2L, 
1L, 1L, 1L), levels = c("EX", "OF", "RE"), class = "factor"), 
    Variable = c("pH", "pH", "pH", "pH", "pH", "pH", "pH", "pH", 
    "pH"), Value = c(8.3, 8.2, 8.2, 7.6, 7.6, 7.6, 8.2, 8.2, 
    8.2)), row.names = c(NA, -9L), class = c("tbl_df", "tbl", 
"data.frame"))

示例代码

shap.t.result = shapiro.test(df$Value[df$STATION == "EX"])

enter image description here

r anova
1个回答
0
投票

您无法覆盖该错误,但您可以通过使用

try()

运行该函数来捕获它(并防止它停止您的代码)
shap.t.result <- try(shapiro.test(df$Value[df$STATION == "EX"]))

如果测试失败,您将获得

try-error
类的对象,而不是
htest
测试结果。 你也可以这样做:

my_shap_test <- purrr::safely(function(x) shapiro.test(x)$p.value,
                        otherwise = NA_real_)
my_shap_test(df$Value[df$STATION == "EX"])$result  ## NA
© www.soinside.com 2019 - 2024. All rights reserved.