Funkcja mapply() przyjmuje obiekt będący wektorem lub listą jako argument i stosuje funkcję do każdego elementu wektora lub listy. Jeśli zostanie wprowadzony obiekt, który nie jest wektorem ani listą, funkcja mapply() spróbuje przekształcić obiekt w wektor lub listę. Elementy obiektu wynikowego muszą być zgodne z prawem, aby funkcja mogła zostać zastosowana. Wynikiem funkcji mapply() jest wektor, macierz lub lista. Argumentami do mapply() są FUN, . . . , MoreArgs, SIMPLIFY i USE.NAMES. Argument FUN to funkcja, którą należy zastosować. Argument. . . odnosi się do wektorów lub listy, na których działa argument FUN i mogą być zbiorem list i / lub wektorów zebranych przy użyciu c(). Argument MoreArgs odnosi się do wszelkich dodatkowych argumentów FUN i domyślnie jest równy NULL. Argumenty muszą być w trybie listy, z oddzielną listą dla każdego argumentu. Argument SIMPLIFY nakazuje mapply() próbę uproszczenia wyniku do wektora lub macierzy. Wartość domyślna to TRUE. Argument USE.NAMES mówi mapply(), aby używała nazw elementów lub, jeśli wektor jest typu mode character, samych znaków jako nazw danych wyjściowych. Wartość domyślna to PRAWDA. Oto przykład:
> set.seed(382765)
> a.mat = matrix(1,4,4)
> b.mat = matrix(runif(9),3,3)
> c.vec = 1:2
> mapply(det, list(a.mat, b.mat))
[1] 0.0000000 -0.3349038
> mapply(mean, c( list(a.mat,b.mat), c.vec))
[1] 1.0000000 0.6208733 1.0000000 2.0000000
> mapply(mean, c( list(a.mat,b.mat), list(c.vec)))
[1] 1.0000000 0.6208733 1.5000000
Tutaj det znajduje wyznaczniki elementów, a średnia znajduje środki elementów. Kolejny przykład – używając MoreArgs – jest następujący:
> set.seed(382765)
>
> mapply(cor, c(list(a.mat,b.mat), list(c.vec)), list(y=1:4,y=1:3,y=3:4),
list(use=”everything”), list(method=”pearson”))
[[1]]
[,1]
[1,] NA
[2,] NA
[3,] NA
[4,] NA
[[2]]
[,1]
[1,] 0.1872769
[2,] 0.8836377
[3,] -0.4585219
[[3]]
[1] 1
Warning message:
In (function (x, y = NULL, use = “everything”, method = c(“pearson”, :
the standard deviation is zero
Tutaj funkcja jest funkcją korelacji, a argumenty y, użycie i metoda są dostarczane jako lista. Więcej informacji na temat mappl () można znaleźć, wpisując ?mapply w wierszu polecenia R.