comment faire une séquence de nombres à des valeurs uniques?J'ai la Column1 suivante et j'ai besoin de créer une nouvelle colonne contenant le nombre séquentiel de répétitions dans Column1
Le tableau résultant devrait ressembler à ceci :
| Colonne1 | Colonne2 |
| un | 1 |
| un | 2 |
| un | 3 |
| b | 1 |
| b | 2 |
| c | 1 |
Des suggestions sur la façon de coder en JSL? (ou en formule colonne ?) merci !
Re : comment faire une séquence de nombres pour des valeurs uniques ?Voici une méthode de formule de colonne :
// define values
Col1Vals = {"a","a","a","a","b","b","c","c","c"};
dt = New Table();
dt << New Column("MyValues",Character,Nominal,<< Set Values(Col1Vals));
// Create Cumulative Frequencies
dt << New Column("CumulativeFreqCount",Numeric,Continuous);
dt:CumulativeFreqCount << Set Each Value(
If(
Row() == 1, 1,
:MyValues == Lag( :MyValues, 1 ), Lag(:CumulativeFreqCount, 1 ) + 1,
1
)); // end set each valueRe : comment faire une séquence de nombres pour des valeurs uniques ?En fait, j'ai raté la partie où vous vouliez obtenir une somme cumulée, plutôt que la somme.
Je suis presque sûr qu'il existe des moyens plus intelligents et plus efficaces de le faire. Cela fonctionnera cependant.
Je crée également les données brutes, pour que vous puissiez tester et jouer avec
// define values
Col1Vals = {"a","a","a","a","b","b","c","c","c"};
dt = New Table();
dt << New Column("MyValues",Character,Nominal,<< Set Values(Col1Vals));
// Generate summary
dt1 = dt << Summary( Group( :MyValues ), Freq( "None" ), Weight( "None" ) );
UniqueItems = dt1:MyValues << Get values;
FrequencyOfItems = dt1 << Get As Matrix; <BR /><BR />Close(dt1,"No Save");
// Add Cumulative Frequencies back
dt << New Column("CumulativeFreqCount",Numeric,Continuous);
for(i = 1, i <= N Items(UniqueItems),i++,
Rows = dt << Select Where(:MyValues == UniqueItems[i]) << Get Selected Rows;
ValsToAppend = Transpose(Index(1,FrequencyOfItems[i]));
dt[Rows,"CumulativeFreqCount"] = ValsToAppend;
dt << Clear Select;
); 
Re : comment faire une séquence de nombres pour des valeurs uniques ?merci.J'ai mis le code dans un fichier de script JMP (voir pièce jointe) mais le script ne s'exécute pas.Aucune suggestion?
Serait-il plus facile de mettre le code dans une formule de colonne ?
Re : comment faire une séquence de nombres pour des valeurs uniques ?@rs ,
En supposant que vous ayez une référence à la table de données - disons dt :
dt1 = dt << Summary(
Group( :Column 1 ),
Freq( "None" ),
Weight( "None" )
)
Si les données ne sont pas triées (généralement, elles le devraient), vous pouvez utiliser le sort () sur la table résultante