我有一个数据框A
,我将其拆分为 100 个数据框的列表,每个数据框有 3 行(在我的真实数据中,每个数据框有 500 行)。在这里,我展示了带有 2 个列表元素的 A(row1-row3;row4-row6):
A <- data.frame(n = c(0, 1, 2, 0, 1, 2),
prob = c(0.4, 0.5, 0.1, 0.4, 0.5, 0.1),
count = c(24878, 33605, 12100 , 25899, 34777, 13765))
# This is the list:
nest <- split(A, rep(1:2, each = 3))
我想对这些数据帧中的每一个应用多项测试并提取每个测试的 p 值。到目前为止,我已经这样做了:
library(EMT)
fun <- function(x){
multinomial.test(x$count,
prob=x$prob,
useChisq = FALSE, MonteCarlo = TRUE,
ntrial = 100, # n of withdrawals accomplished
atOnce=100)
}
lapply(nest, fun)
但是,我得到:
"Error in multinomial.test(x$counts_set, prob = x$norm_genome, useChisq = F, :
Observations have to be stored in a vector, e.g. 'observed <- c(5,2,1)'"
有没有人有更聪明的方法来做到这一点?