我的问题有一个类似的[这里] [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
感谢您提供的所有支持。
答案 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