Comment puis-je groupe une liste de valeurs numériques dans les gammes Cross Validées
Pourquoi les regrouper? Au lieu de cela, que diriez-vous estimer la fonction de densité de probabilité (PDF) des distributions à partir de laquelle les données se posent? Voici un exemple à base de R-:
Si les données sont strictement limitées (0, 2000000) l'estimation de la densité du noyau est peut-être pas le mieux adapté. Vous pouvez truquer les choses en lui demandant d'évaluer que la densité entre les bornes:
Sinon il y a l'histogramme - une version grossière de la densité du noyau. Qu'est-ce que vous parlez spécifiquement au sujet est binning vos données. Il y a beaucoup de règles / approches pour sélectionner des bacs de largeur égale (à savoir le nombre de bacs) à partir des données. En R la valeur par défaut est la règle Sturges, mais il inclut également la règle Freedman-Diaconis et la règle de Scott. Il y a d'autres aussi - voir la page Wikipedia sur histogrammes.
Si vous n'êtes pas intéressé par le tracé de la densité du noyau ou l'histogramme en soi, plutôt seulement les données regroupées par casiers, alors vous pouvez calculer le nombre de bacs à l'aide de la famille nclass.X des fonctions où X est l'un des Sturges. scott ou FD. Et puis utilisez coupé () pour bin vos données:
Je suppose que vous avez déjà déterminé le nombre de catégories que vous utiliserez. Disons que vous voulez utiliser 20 catégories. Ensuite, ils seront:
- Catégorie 1: [0 - 100 000)
- Catégorie 2: [100 000 - 200 000)
- Catégorie 3: [200 000 - 300 000)
- .
- Catégorie 19: [1800000 - 1900000)
- Catégorie 20: [1900000 - 2000000]
Notez que l'étiquette de chaque catégorie peut être définie comme
Ceci est trivial pour définir une colonne calculée dans SQL ou comme une formule dans Excel.
Notez que la dernière catégorie est infinitésimale plus grande que les autres, car il est fermé des deux côtés. Si vous arrive d'obtenir une valeur exactement 2.000.000 à tort que vous pourriez le classer comme relevant de la catégorie 21, donc vous devez traiter cette exception avec un laid « IF » (dans Excel) ou « CASE » (dans SQL).
Bien que la réponse FLOOR est probablement plus agréable, vous pouvez le faire avec un vlookup.
La première colonne de la table de consultation (ci-dessous) est la borne inférieure de chacun de vos bacs. Ensuite, vous entrez dans une formule pour rendre les étiquettes dans la deuxième colonne (formule indiquée, et le résultat de la formule dans la troisième colonne -. Vous auriez évidemment que deux colonnes avez) Notez que les deux dernières lignes de la table sont bancale - la dernière seconde a une formule différente parce que vous voulez qu'il soit le unbounded « supérieur à » cas (à moins que vous ne voulez pas, puis changer la formule - vous pouvez régler cela comme bon vous semble).
Vous entrez dans cette formule (en supposant que les valeurs que vous souhaitez bin sont Col A, et la table de consultation est en F Col.. G quelque part Notez le paramètre TRUE, donc vlookup n'a pas besoin de trouver une correspondance exacte.
C'est ce que la table de recherche ressemblerait à ceci: