考虑函数f(x,y),其中x是向量(1xn),数据是矩阵(nxm),返回数字标量。
现在,我有一个矩阵A和一个三维数组B,并希望在A和B的第一维上应用f。
具体来说,我希望f在x = A [1,] y = B [1 ,,]时进行评估,然后x = A [2,] y = B [2 ,,]等等,返回数字标量的向量。
有没有办法使用“apply”系列的任何功能来解决这个问题,从而避免循环?
答案 0 :(得分:0)
你可以这样做:
sapply(1:nrow(A), function(i) f(A[i,], B[i,,]))
这是循环隐藏,因为循环是在sapply()
内完成的。我想在这种情况下最好使用显式循环:
result <- numeric(nrow(A))
for (i in 1:nrow(A)) result[i] <- f(A[i,], B[i,,]