come si fa una sequenza numerica a valori univoci?Ho il seguente Column1 e ho bisogno di creare una nuova colonna contenente il numero sequenziale di ripetizioni in Column1
La tabella risultante dovrebbe essere simile a questa:
| Colonna 1 | Colonna2 |
| UN | 1 |
| UN | 2 |
| UN | 3 |
| B | 1 |
| B | 2 |
| C | 1 |
Qualche suggerimento su come codificare in JSL? (o nella formula della colonna?) grazie!
Ri: come si fa una sequenza numerica a valori univoci?Ecco un metodo di formula di colonna:
// 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 valueRi: come si fa una sequenza numerica a valori univoci?In realtà, ho perso la parte in cui volevi ottenere una somma cumulativa, piuttosto solo la somma.
Sono abbastanza sicuro che ci siano modi più intelligenti ed efficienti per farlo. Questo funzionerà però.
Sto essenzialmente creando anche i dati grezzi, affinché tu possa testarli e giocarci
// 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;
); 
Ri: come si fa una sequenza numerica a valori univoci?Grazie.Ho inserito il codice in un file di script JMP (vedi allegato) ma lo script non viene eseguito.Eventuali suggerimenti?
Sarebbe più facile inserire il codice in una formula di colonna?
Ri: come si fa una sequenza numerica a valori univoci?@rs ,
Supponendo che tu abbia un riferimento alla tabella dei dati, diciamo dt :
dt1 = dt << Summary(
Group( :Column 1 ),
Freq( "None" ),
Weight( "None" )
)
Se i dati non sono ordinati (in genere dovrebbe), puoi utilizzare sort() sulla tabella risultante