我无法弄清楚如何在数据框的嵌套列表列中执行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))
因子&#39; b&#39;之间的分布是否相同? (等级&#39;&#39;&#39;&#39;)与&#39; c&#39;在因子&#39;(&#39; A&#39;和&#39; B&#39;)的子组中计算?
dfnest <- df %>%
nest(-a) %>%
mutate(chisq_p = map_dbl(data, ~chisq.test(.$b~.$c)$p.value))
最后一行是我想要完成的,但上面的内容不正确 - 如何在列表列数据中使用chisq.test,并将p.value插入新列?
答案 0 :(得分:0)
更改chisq.test
调用中的参数会返回预期结果。
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 }))