我正在尝试使用以下函数和调用在具有多行的数据框上运行excact binom.tests,如前面@Joran所示:
<script src="https://d3js.org/d3.v4.min.js"></script>
<svg width="1260" height="200"></svg>
它适用于以下数据框:
get_binCI <- function(x, n) {
bi <- binom.test(x,n)$conf.int*100
data_frame(lwr = bi[1],
upr = bi[2])
}
library(dplyr)
df %>%
group_by(col1,col2) %>%
do(get_binCI(.$col1, .$col2)
但是,当我尝试在我自己的数据框架上使用它时(有多个其他列,并且显着长于上面的那个,但在其他方面类似),我收到以下错误:
col1 <- c(11,2,7,6,5,2,3,4,1,1,5,8,7,6)
col2 <- c(303,303,303,303,303,471,471,471,471,200,200,200,200,200)
df <- data.frame(col1,col2, stringsAsFactors = F)
所以我查看了binom.test的源代码(如下),找到了错误的来源,但我似乎无法解决问题......
Error in binom.test(x,n) : incorrect length of 'x'
由于两个数据帧之间的唯一区别是长度和附加列,我不知道为什么会产生这个错误。