gpt4 book ai didi

r - 将具有两个参数的函数应用于 n × 2 矩阵

转载 作者:行者123 更新时间:2023-12-05 00:22:43 24 4
gpt4 key购买 nike

我已经写了这个函数

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]))

我认为这应该都有效。抱歉,当前正在运行一些代码,无法验证/测试它。

关于r - 将具有两个参数的函数应用于 n × 2 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29542130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com