我已经写了这个功能
tippett <- function(p1, p2) {
t <- 1 - (1 - min(p1, p2))^2
return(list(p.value=t))
}
我想将其水平应用到生成的数字矩阵中。例如在此矩阵中:z <- matrix(c(rbeta(5, 1, 5), rbeta(5, 1, 10)), ncol=2)
。
不幸的是apply
似乎没有用这种方式工作和使用它s<-apply(z,1,tippett)
产生这个错误
Error in FUN(newX[, i], ...) : argument "p2" is missing, with no default
你能告诉我我该如何规避吗?我希望将这一过程推广到数千行,而且我无法想象手动进行。
谢谢。
我认为您可以更改功能...
tippett<-function(p){
t<-1-(1-min(p))^2
return(list(p.value=t))
}
然后您的函数调用应该起作用。(我还没有测试过……)
s<-apply(z,1,tippett)
另外,如果您无法更改此功能,则可以尝试类似...
s <- sapply(seq_along(nrow(z)), function(i) tippett(z[i,1], z[i,2]))
我认为这应该一切正常。抱歉,当前正在运行某些代码,无法验证/测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句