5.6.4 mapply
lapply()와 sapply() 함수는 한 벡터의 요소에 따라 반복적인 반면, mapply() 함수는 여러 벡터에서 반복적이다. 다시 말해 mapply는 sapply의 다변량 버전이라고 할 수 있다.
> mapply(function(a, b, c) a * b+ b * c+ a * c, + a = c(1, 2, 3), b = c(5, 6, 7), c = c(-1, -2, -3)) [1] -1 -4 -9
이 반복 함수에서는 스칼라 값뿐만 아니라 다중 요소 벡터까지도 결과가 될 수 있다. mapply() 역시 sapply()처럼 자동으로 결과를 단순화한다.
> df <- data.frame(x = c(1, 2, 3), y = c(3, 4, 5)) > df x y 1 1 3 2 2 4 3 3 5 > mapply(function(xi, yi) c(xi, yi, xi+ yi), df$x, df$y) [,1] [,2] [,3] [1,] 1 2 3 [2,] 3 4 5 [3,] 4 6 8