如何在 R 中的 dplyr 嵌套中执行 chisq.test
How to perform chisq.test within dplyr nest in R
我无法弄清楚如何在数据框的嵌套列表列中执行 chisq.test。如果我需要将数据列表列转换为矩阵,我该怎么做,然后如何正确引用 chisq.test 的变量?以下面的例子为例。谢谢!
这是一个例子:
a <- rep(c('A', 'B'), 10)
b <- rep(c('a', 'b'), each = 10)
c <- as.numeric(rep(c(1:10), each = 2))
df <- as.data.frame(cbind(a, b, c)) %>%
mutate(c = as.numeric(c))
在因子 'a'( 'A' 和 'B')?
dfnest <- df %>%
nest(-a) %>%
mutate(chisq_p = map_dbl(data, ~chisq.test(.$b~.$c)$p.value))
最后一行是我想要完成的,但上面是不正确的 - 我如何在列表列数据中使用 chisq.test,并将 p.value 插入新列?
正在更改调用中的参数 chisq.test
returns 预期结果。
df %>%
nest(-a) %>%
mutate(chisq_p = map_dbl(data, ~chisq.test(.)$p.value))
您也可以使用匿名函数。
df %>%
nest(-a) %>%
mutate(chisq_p = map_dbl(data, function(f) { chisq.test(f)$p.value }))
我无法弄清楚如何在数据框的嵌套列表列中执行 chisq.test。如果我需要将数据列表列转换为矩阵,我该怎么做,然后如何正确引用 chisq.test 的变量?以下面的例子为例。谢谢!
这是一个例子:
a <- rep(c('A', 'B'), 10)
b <- rep(c('a', 'b'), each = 10)
c <- as.numeric(rep(c(1:10), each = 2))
df <- as.data.frame(cbind(a, b, c)) %>%
mutate(c = as.numeric(c))
在因子 'a'( 'A' 和 'B')?
dfnest <- df %>%
nest(-a) %>%
mutate(chisq_p = map_dbl(data, ~chisq.test(.$b~.$c)$p.value))
最后一行是我想要完成的,但上面是不正确的 - 我如何在列表列数据中使用 chisq.test,并将 p.value 插入新列?
正在更改调用中的参数 chisq.test
returns 预期结果。
df %>%
nest(-a) %>%
mutate(chisq_p = map_dbl(data, ~chisq.test(.)$p.value))
您也可以使用匿名函数。
df %>%
nest(-a) %>%
mutate(chisq_p = map_dbl(data, function(f) { chisq.test(f)$p.value }))