我需要应用一个在矩阵上带两个参数的函数。
mapply(function(x, y) x+y, rbind(1:3, 1:3), rbind(2:4, 2:4))
输出
[1] 3 3 5 5 7 7
它没有给我想要的格式。我需要它来保留它的矩阵形式。
另一方面,R中的 apply 函数有一个参数 margin ,这有助于保留矩阵格式,但仅适用于一个参数。
apply(rbind(1:3,1:3), MARGIN = c(1,2), function(x) x+3)
[,1] [,2] [,3]
[1,] 4 5 6
[2,] 4 5 6
关于应用的 MARGIN 参数是什么意思, mapply 不是这样的?
请:我不需要答案来重新安排结果,我可以做到。我正在使用这段代码来编写一个带有三维meshgrid的函数,这将很容易重新排列。
以后编辑:
我很抱歉,我没有详细说明, 当然,我没有被卡住,因为我想做
rbind(1:3, 1:3) + rbind(2:4, 2:4)
这些 rbinds 只是我正在使用的向量的示例。而函数(x,y)x + y 也是很长的嵌套函数的一个例子,我不能在这里复制,这将是如此混乱和低效。但它是两个变量的函数,现在是相关的。