如何同时测试R中多个变量的正态性?
我有一个由20个观测值和35个变量组成的数据框架 一个变量的正态性测试将为如何同时测试R中多个变量的正态性?,r,normal-distribution,R,Normal Distribution,我有一个由20个观测值和35个变量组成的数据框架 一个变量的正态性测试将为 shapiro.test(mydata$var1) 我想同时测试所有变量的正态性。如何在R中执行此操作?这在很大程度上取决于您正在寻找的输出类型以及您希望如何控制familywise错误率。这里有一个使用Bonferroni校正的解决方案 # example data t <- as.data.frame(matrix(rnorm(700), 20,35)) shapiro_test_df <- func
shapiro.test(mydata$var1)
我想同时测试所有变量的正态性。如何在R中执行此操作?这在很大程度上取决于您正在寻找的输出类型以及您希望如何控制familywise错误率。这里有一个使用Bonferroni校正的解决方案
# example data
t <- as.data.frame(matrix(rnorm(700), 20,35))
shapiro_test_df <- function(df, bonf= TRUE, alpha= 0.05) {
l <- lapply(df, shapiro.test)
s <- do.call("c", lapply(l, "[[", 1))
p <- do.call("c", lapply(l, "[[", 2))
if (bonf == TRUE) {
sig <- ifelse(p > alpha / length(l), "H0", "Ha")
} else {
sig <- ifelse(p > alpha, "H0", "Ha")
}
return(list(statistic= s,
p.value= p,
significance= sig,
method= ifelse(bonf == TRUE, "Shapiro-Wilks test with Bonferroni Correction",
"Shapiro-Wilks test without Bonferroni Correction")))
}
shapiro_test_df(t)
#示例数据
tsapply(mydata,shapiro.test)
您希望它如何输出?@jeremycg您的解决方案无法控制家庭错误率,这可能非常重要here@Carl我希望以dataframeRight的形式输出,但是您希望每个测试都有一个新的列,或者每个测试都有一个新行。您是否可以编辑您的问题以给出所需输出的结构?是否可以在循环中添加ifelse以记录非正态分布的转换变量