ada*_*888 7 r apply mapply multiple-arguments
我有一个带有两个变量x和y的函数:
fun1 <- function(x,y) {
z <- x+y
return(z)
}
Run Code Online (Sandbox Code Playgroud)
该功能本身可以正常工作:
fun1(15,20)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用带有两个x和y向量的应用函数时,我没有得到正确的56*121数组
Lx <- c(1:56)
Ly <- c(1:121)
mapply(fun1, Lx, Ly)
Run Code Online (Sandbox Code Playgroud)
我将非常感谢您的帮助以及有关最快解决方案的建议(例如,data.table或dplyr解决方案比应用更快).
如果要使用mapply()它,则必须为其提供n个具有相同大小的参数列表,这些参数将通过n传递给函数n,如下所示:
mapply(fun1,c(1,2,3), c(4, 5, 6))
[1] 5 7 9
Run Code Online (Sandbox Code Playgroud)
或一个参数可以是标量,例如:
mapply(fun1,c(1,2,3), 4)
[1] 5 6 7
Run Code Online (Sandbox Code Playgroud)
既然你要使用的所有组合Lx和Ly,你可以遍历一个列表,然后遍历其他,如:
sapply(Lx, function(x) mapply(fun1,x,Ly))
Run Code Online (Sandbox Code Playgroud)
要么
sapply(Ly, function(y) mapply(fun1,Lx,y))
Run Code Online (Sandbox Code Playgroud)
产生与rawr 命题相同的结果
outer(Lx, Ly, fun1)
Run Code Online (Sandbox Code Playgroud)
哪里outer()更快
| 归档时间: |
|
| 查看次数: |
11917 次 |
| 最近记录: |