J'ai essayé d'exécuter des statistiques de base (Moyenne, StDev, Plage) sur un ensemble de données record de 2 millions. Le piège est que je dois en moyenne deux colonnes, pas seulement une. Est-ce possible? Le nombre d'enregistrements pour chaque groupe variera. Le tableau fera la moyenne de Val1 et de Val2 séparément, il me faut les calculer ensemble. Le tableau de données joint doit présenter une valeur moyenne pour Val1 et Val2 en fonction de chaque ID.
Les résultats devraient être:
ID UNE | Moyen 2.000 | StDev
0,8944 | Intervalle
2 |
| B | 3.500 | 1,0488
| 3
|
| C | 2,625 | 1,4079
| 4
|
| ré | 2,700 | 1,9465
| 5
|
Existe-t-il un code JSL que je peux utiliser pour obtenir les résultats que je recherche?
Vous devrez empiler les colonnes. Voici un script simple pour l'illustration
Names default to here(1);
dt=New Table( "JMP QUESTION",
Add Rows( 15 ),
New Column( "ID",
Character( 1 ),
"Nominal",
Set Values(
{"A", "A", "A", "B", "B", "B", "C", "C", "C", "C", "D", "D", "D", "D",
"D"}
),
Set Display Width( 57 )
),
New Column( "Val1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4, 5, 3, 2, 1, 3, 4, 5, 3, 6, 2, 1] ),
Set Display Width( 57 )
),
New Column( "Val2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 3, 2, 4, 3, 2, 1, 2, 5, 3, 1, 2, 5, 1, 1] ),
Set Display Width( 57 )
)
);
// Stack the data
dtStack = dt << Stack(invisible,
columns( :Val1, :Val2 ),
Source Label Column( "Label" ),
Stacked Data Column( "Val 1,2" ),
Name( "Non-stacked columns" )(Keep( :ID ))
);
// Generate the Statistics
dtStack << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Statistics( Mean ), Analysis Columns( :Name( "Val 1,2" ) ) ),
Column Table(
Statistics( Std Dev ),
Analysis Columns( :Name( "Val 1,2" ) )
),
Column Table( Statistics( Range ), Analysis Columns( :Name( "Val 1,2" ) ) ),
Row Table( Grouping Columns( :ID ) )
)
); @txnelson Cela me procure ce dont j'ai besoin. Malheureusement, mon ordinateur portable ne dispose pas des ressources nécessaires pour traiter les 2 millions de lignes, mais je peux le réduire et obtenir les résultats escomptés.
Merci mille fois!
Un certain nombre de choses pourraient vous permettre de courir sur les 2 000 000 de lignes.
1. Assurez-vous que lorsque vous empilez les données, vous n'empilez que les colonnes nécessaires. Dans l'illustration que j'ai fournie, seule la colonne ID est acheminée avec les colonnes empilées.
2 Vous pouvez remplacer "Invisible" par "Privé" dans le code de pile. Cela créera une table de données, mais ne créera aucun code Windowing, vous ne pourrez donc pas le voir.
3 Vous pouvez compresser la colonne (vérification de la liste des propriétés de la colonne), ce qui permettra d'économiser les données dans moins d'espace.