Counting unique elements in a text list

This tip's formula will count the number of elements that are the same in a text list.

The following formula will count the number of elements that are the same in a text list.

List1 :=  @Explode ( "Red,Blue,Red,
Green,Red,Blue"; "," ) ;
List2 := List1 + "@" ;
List3 := @Unique ( List1 ) ;
List4 := @ReplaceSubstring 
( List3; List1; List2 ) ;
List5 := @ReplaceSubstring 
( List4; List3; "" ) ;
@Length ( List5 )

In this example it returns 3; 2; 1. That is, there are 3 occurrences of red, 2 blue and 1 green.

How it works

List1 can be any text list field or variable.

List2 is all the elements of List1 with @ appended to the end. You can use other characters. So, in this example, List2 looks like:

 Red@; Blue@; Red@; Green@; Red@; Blue@

List3 is a text list of the unique values within List1:

 Red; Blue; Green

List4 replaces the values in List3 with those in List2, which results in an @ sign for each occurrence:

 Red@@@; Blue@@; Green@

List5 removes the List3 values from List4 and returns:

 @@@; @@; @

The last command now returns the length of each item in the list:

 3; 2; 1

With a bit more list manipulation you can return:

Red 3
Blue 2
Green 1

List1 :=  @Explode ( "Red,Blue,Red,
Green,Red,Blue"; "," ) ;
List2 := List1 + "@" ;
List3 := @Unique ( List1 ) ;
List4 := @ReplaceSubstring ( List3;
 List1; List2 ) ;
List5 := @ReplaceSubstring ( List4; 
List3; "" ) ;
@Length ( List5 )

Do you have comments on this tip? Let us know.

This was first published in November 2003
This Content Component encountered an error

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchWindowsServer

Search400

  • iSeries tutorials

    Search400.com's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...

SearchEnterpriseLinux

SearchDataCenter

SearchExchange

SearchContentManagement

Close