如何使用 dplyr 在函数内执行描述和卡方检验

How to use dplyr to perform descriptives and a chi-square test within function

我的问题在 [此处][1] 中有一个类似的问题,但只要 dplyr 改变它做事的方式,我相信我的问题是原创的,可以帮助其他人。

首先,我尝试在函数内部,报告描述性统计和运行一些统计推断测试,例如卡方。

这种语法非常有效:

> desc_chi <- function(group_var) {   group_var <- enquo(group_var)   j
> <- dataset %>% 
>     group_by(!!group_var) %>% 
>     summarise(n = n())   print(j) } 
desc_chi(GENDER)

但是当我添加卡方检验时,它停止并报错:

desc_chi <- function(group_var) {
  group_var <- enquo(group_var) 
  j <- dataset %>% 
    group_by(!!group_var) %>% 
    summarise(n = n(),
      pvalue=chisq.test(.$LOCATION, .$group_var))
  print(j)
}

pvalue 的长度必须为 1(汇总值),而不是 9

感谢您一直以来的支持。

这个怎么样?

 desc_chi <- function(dataset, group_var) {   
  group_var <- enquo(group_var)   
  dataset %>% 
      group_by(!!group_var) %>% 
      summarise(n = n()) %>% 
      mutate(chisq_pval = chisq.test(n)$p.value)   
 } 


mtcars %>% 
     desc_chi(cyl)


# A tibble: 3 x 3
    cyl     n chisq_pval
   <dbl> <int>      <dbl>
1  4.00    11      0.315
2  6.00     7      0.315
3  8.00    14      0.315