Quelles sont les reduceAdd, reduceSum , reduceRemove fonctions dans crossfilter? Comment devraient-ils être utilisés?
Quelqu'un peut m'expliquer en termes simples comment réduire la fonction avec ses arguments reduceAdd
, reduceSum
, reduceRemove
travaille dans crossfilter
?
- j'aimerais savoir ce que le reduceAdd, reduceRemove fonctions ne, spécifiquement et quels sont les arguments passés à eux spécifier
Vous devez vous connecter pour publier un commentaire.
Rappelez-vous que la carte de réduire réduit d'un jeu de données par des touches d'une dimension particulière. Par exemple permet d'utiliser un crossfilter exemple avec des enregistrements:
et dimensions le nom, l'âge, la valeur et le sexe. Nous allons réduire la dimension de genre à l'aide de la réduction de la méthode.
Nous avons d'abord définir le reduceAdd, reduceRemove, et reduceInitial méthodes de rappel.
reduceInitial
retourne un objet avec la forme de l'objet réduit et les valeurs initiales. Il ne prend pas de paramètres.reduceAdd
définit ce qui se passe quand un enregistrement est en cours "filtrée dans" l'objet réduit pour une touche particulière. Le premier paramètre est un transitoire de l'instance de l'objet réduit. Le deuxième objet est l'enregistrement en cours. La méthode sera de retour à l'accroissement transitoire de l'objet réduit.reduceRemove
est l'opposé dereduceAdd
(au moins dans cet exemple). Il prend les mêmes paramètres quereduceAdd
. Il est nécessaire parce que le groupe réduit sont mis à jour que les dossiers sont filtrés et, parfois, les dossiers doivent être retirés précédemment calculés à partir d'un groupe de réduction.L'invocation de la réduire méthode devrait ressembler à ceci:
De prendre un coup d'oeil à la réduction de la valeur, utilisez le
all
méthode. Pour voir les n premières valeurs d'utiliser letop(n)
méthode.Le tableau retourné devrait (devraient) ressembler à:
Les objectifs de réduction d'un jeu de données pour en déduire une nouvelle base de données en premier regroupement d'enregistrements par le commun des touches, puis réduire à une dimension de ces groupes en une seule valeur pour chaque clé. Dans ce cas, nous avons regroupés par sexe et par réduction de la valeur de la dimension du groupement en additionnant les valeurs des enregistrements qui ont partagé la même clé.
L'autre reduceX méthodes sont convience méthodes pour la réduction de la méthode.
Pour cet exemple
reduceSum
serait le plus approprié de remplacement.Invoquant
all
sur le revenu regroupement devrait ressembler à:reduceCount
va compter le nombre d'enregistrementsInvoquant
all
sur le revenu regroupement devrait ressembler à:Espère que cela aide 🙂
Source: https://github.com/square/crossfilter/wiki/API-Reference
mycf.dimensions.gender.reduce(reduceAdd, reduceRemove, reduceInitial)
?qu'est-ce que le genre?mycf.dimensions.gender
est juste une dimension qui a probablement été défini précédemment commemycf.dimension(function(d) {return d.gender;}
http://blog.rusty.io/2012/09/17/crossfilter-tutorial/
Par exemple, combien de vie les choses sont dans ma maison?
Pour ce faire, nous allons appeler la
groupAll
fonction de commodité, qui sélectionne tousles dossiers dans un seul groupe, et puis le
reduceCount
fonction, quicrée un nombre de dossiers.
Maintenant, nous allons obtenir un décompte de tous les pieds dans ma maison. Encore une fois, nous allons utiliser le
groupAll
fonction pour obtenir tous les enregistrements dans un seul groupe, mais ensuite, nous appelons l'reduceSum
fonction. Cela va de la somme des valeurs ensemble. Quelles valeurs?Eh bien, nous voulons que les jambes, donc, nous allons passer à une fonction qui extrait et renvoie le nombre de pattes de fait.
reduceCount
fonction crée un nombre de dossiers.reduceSum
fonction est la somme des valeurs de ces registres.