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

时间:2018-03-08 20:39:30

标签: r dplyr chi-squared

我的问题有一个类似的[这里] [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

感谢您提供的所有支持。

1 个答案:

答案 0 :(得分:1)

这个怎么样?

 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