使用 dplyr 对组或因子使用函数
Use function over groups or factors with 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
使函数遍历 group_by()
传递的组的适当方法是什么?
创建一个新列来存储每个组的 p-value :
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
我想使用一个功能,例如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
使函数遍历 group_by()
传递的组的适当方法是什么?
创建一个新列来存储每个组的 p-value :
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