R 外部不适用于具有多个参数的函数?
我开发了以下返回布尔值(0或1)的函数: 这里我试图计算R 外部不适用于具有多个参数的函数?,r,R,我开发了以下返回布尔值(0或1)的函数: 这里我试图计算lanchester()函数中的r和b参数。此函数lanchester()一次返回0或1。因此,矩阵m将是由零或1组成的矩阵,其尺寸等于长度(r)*长度(b) 这里的问题是外部函数给出了一个错误 提前感谢您的帮助 正如@BenBolker在评论中提到的那样,Vectorize可以围绕函数运行 lanchester_vec <- Vectorize(function(r, b) { lanchester(time_r
lanchester()
函数中的r
和b
参数。此函数lanchester()
一次返回0或1。因此,矩阵m将是由零或1组成的矩阵,其尺寸等于长度(r)*长度(b)
这里的问题是外部函数给出了一个错误强>
提前感谢您的帮助 正如@BenBolker在评论中提到的那样,
Vectorize
可以围绕函数运行
lanchester_vec <- Vectorize(function(r, b) {
lanchester(time_range=c(0,T=30*60),delta=0.001,r, b, R_0=30, B_0=30)})
outer (r1, b1, lanchester_vec)
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
# [1,] 1 0 0 1 1 1 1 1 1
# [2,] 1 1 0 0 1 0 1 1 1
# [3,] 1 1 1 1 0 0 0 1 1
# [4,] 1 1 1 1 1 0 1 1 1
# [5,] 0 1 0 1 1 1 0 1 0
# [6,] 0 0 1 1 1 1 1 0 0
# [7,] 1 1 0 1 0 0 1 0 0
# [8,] 1 1 0 1 1 0 0 1 0
# [9,] 1 1 1 0 1 1 1 0 1
lanchester\u-vecouter
仅适用于矢量化函数。(有关快速解决方法,请参见?矢量化
)@BenBolker,是否有其他可能像mapply一样工作?非常感谢您的宝贵帮助!
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 1 1 1 1 1 1 1 1 1
[2,] 1 1 1 1 1 1 1 0 1
[3,] 1 0 1 1 1 1 1 1 1
[4,] 1 1 1 0 1 0 1 1 1
[5,] 1 0 1 1 0 0 1 1 1
[6,] 0 1 0 1 1 1 0 1 0
[7,] 0 0 0 1 1 1 1 1 1
[8,] 1 0 1 0 1 1 1 1 1
[9,] 1 1 1 1 0 1 0 1 1
lanchester_vec <- Vectorize(function(r, b) {
lanchester(time_range=c(0,T=30*60),delta=0.001,r, b, R_0=30, B_0=30)})
outer (r1, b1, lanchester_vec)
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
# [1,] 1 0 0 1 1 1 1 1 1
# [2,] 1 1 0 0 1 0 1 1 1
# [3,] 1 1 1 1 0 0 0 1 1
# [4,] 1 1 1 1 1 0 1 1 1
# [5,] 0 1 0 1 1 1 0 1 0
# [6,] 0 0 1 1 1 1 1 0 0
# [7,] 1 1 0 1 0 0 1 0 0
# [8,] 1 1 0 1 1 0 0 1 0
# [9,] 1 1 1 0 1 1 1 0 1