- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
In a situation where both numbers and text are present, how can we achieve the correct sorting?
As shown in the following JSL, sorting works correctly in ascending order when only numbers are present; however, when mixed with text, converting to numbers before sorting causes issues. What methods can be used to solve this problem?
stepList = {"2", "3", "10", "9", "1"};
stepListSort = Sort List( stepList );
stepListNum = {};
For( i = 1, i <= N Items( stepList ), i++,
Insert Into( stepListNum, Num( stepList[i] ) )
);
stepListNumSort = Sort List( stepListNum );
stepListWithString = {"2", "3", "10_New", "9", "1"};
stepListWithStringSort = Sort List( stepListWithString );
Show( stepListWithSting );
stepListNum = {};
For( i = 1, i <= N Items( stepList ), i++,
Insert Into( stepListNum, Num( stepListWithString[i] ) )
);
stepListWithStringNumSort = Sort List( stepListNum );
1 REPLY 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: In a situation where both numbers and text are present, how can we achieve the correct sorting?
JMP uses different ways of sorting in different places (there is at least one old post of mine asking about this but might be difficult to find). You can try going through data table
Names Default To Here(1);
stepListWithString = {"2", "3", "10_New", "9", "1"};
dt = New Table("A",
New Column("A", Character, Nominal, Values(stepListWithString))
);
dt << Sort(By(:A), Replace Table, Order(Ascending));
stepListWithStringSort = dt[0, 1];
Close(dt, no save);
show(stepListWithStringSort);
// stepListWithStringSort = {"1", "2", "3", "9", "10_New"};
-Jarmo