Quand je regarde la source de Packages R, je vois la fonction de balayage utilisé assez souvent. Parfois, il est utilisé lorsqu'une simple fonction, aurait suffi (par exemple, "appliquer"), d'autres fois, il est impossible de savoir exactement ce qu'il est en train de faire sans passer un peu de temps à l'étape à travers le bloc de code c'est dans.
le fait que je puisse reproduire le balayage de l'effet à l'aide d'une simple fonction suggère que je ne comprends pas de balayage de la base de cas d'utilisation, et le fait que cette fonction est utilisée pour le suggère souvent que c'est très utile.
Le contexte:
sweep est une fonction de R de la bibliothèque standard; c'est la signature de la méthode est:
sweep(x, MARGIN, STATS, FUN="-", check.margin=T, ...)
# x is the data
# STATS refers to the summary statistics which you wish to 'sweep out'
# FUN is the function used to carry out the sweep, "-" is the default
Comme vous pouvez le voir, la signature de la méthode est semblable à la 'demande' si 'balayage' exige un paramètre plus, 'STATS'.
Une autre différence essentielle est que, 'balayage' retourne un tableau de la même forme que le tableau d'entrée, tandis que le résultat retourné par "appliquer" dépend de la fonction de transmission.
Balayage en action:
# e.g., use 'sweep' to express a given matrix in terms of distance from
# the respective column mean
# create some data:
M = matrix( 1:12, ncol=3)
# calculate column-wise mean for M
dx = colMeans(M)
# now 'sweep' that summary statistic from M
sweep(M, 2, dx, FUN="-")
[,1] [,2] [,3]
[1,] -1.5 -1.5 -1.5
[2,] -0.5 -0.5 -0.5
[3,] 0.5 0.5 0.5
[4,] 1.5 1.5 1.5
Donc, en somme, ce que je cherche est un modèle de cas d'utilisation ou les deux pour les de balayer.
S'il vous plaît, ne pas réciter ou un lien vers la R de la Documentation, listes de diffusion, ou l'un des "primaires" R sources--supposons que j'ai lus. Ce qui m'intéresse est de savoir comment expérimentée de R programmeurs/analystes utilisent le balayage dans leur propre code.