Wie wird eine Zahlenfolge zu eindeutigen Werten?Ich habe die folgende Spalte1 und muss eine neue Spalte erstellen, die die fortlaufende Anzahl von Wiederholungen in Spalte1 enthält
Die resultierende Tabelle sollte wie folgt aussehen:
| Spalte1 | Spalte2 |
| a | 1 |
| a | 2 |
| a | 3 |
| b | 1 |
| b | 2 |
| c | 1 |
Irgendwelche Vorschläge, wie man in JSL codiert? (oder in Spaltenformel?) danke!
Re: Wie wird eine Zahlenfolge zu eindeutigen Werten?Hier ist eine Spaltenformelmethode:
// 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: Wie wird eine Zahlenfolge zu eindeutigen Werten?Eigentlich habe ich den Teil verpasst, wo Sie eine kumulierte Summe erhalten wollten, eher nur die Summe.
Ich bin mir ziemlich sicher, dass es intelligentere und effizientere Methoden gibt, dies zu tun. Das wird aber funktionieren.
Ich erstelle im Wesentlichen auch die Rohdaten, damit Sie sie testen und damit spielen können
// 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: Wie wird eine Zahlenfolge zu eindeutigen Werten?Danke.Ich habe den Code in eine JMP-Skriptdatei eingefügt (siehe Anhang), aber das Skript wird nicht ausgeführt.Irgendwelche Vorschläge?
Wäre es einfacher, den Code in eine Spaltenformel einzufügen?
Re: Wie wird eine Zahlenfolge zu eindeutigen Werten?@rs ,
Angenommen, Sie haben einen Verweis auf die Datentabelle - sagen wir dt :
dt1 = dt << Summary(
Group( :Column 1 ),
Freq( "None" ),
Weight( "None" )
)
Wenn die Daten nicht sortiert sind (was normalerweise der Fall sein sollte), können Sie sort() für die resultierende Tabelle verwenden