如何解决在dplyr的组或因子上使用函数
我想使用一个功能,例如shapiro.test()
在数据集中的多个组上。
首先我尝试
library(tidyverse)
library(magrittr)
mtcars %>% group_by(cyl) %$% shapiro.test(wt)$p.value
#> [1] 0.09265499
但是,这并没有像我期望的那样遍历各个组。 然后,我尝试了一个将结果输出为数据帧的函数,因为这是在Stack Overflow上另一个问题的解决方法。
checknorm <- function(x) {
return(data.frame(P = shapiro.test(x)$p.value))
}
mtcars %>% group_by(cyl) %$% checknorm(wt)
#> P
#> 1 0.09265499
解决方法
创建一个新列以存储每个组的p值:
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarise(p_val = shapiro.test(wt)$p.value)
# cyl p_val
# <dbl> <dbl>
#1 4 0.570
#2 6 0.131
#3 8 0.00275
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。