如何使用 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
我的问题在 [此处][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