Choose Language Hide Translation Bar
Highlighted
Craige_Hales
Staff (Retired)

Re: Count number of occurrences of specific words in a string

It looks like your data is numeric (base 10 already!) so you might need to use char(value) to get it back to a string representation.

Craige
Highlighted
ian_jmp
Staff

Re: Count number of occurrences of specific words in a string

Please find one of the alternatives. Run the script to make a table.

New Table( "Counting Ones",
	Add Rows( 5 ),
	New Column( "Number",
		Numeric,
		"Continuous",
		Format( "Best", 17 ),
		Set Values( [111000010100001, 10101, 11111, 0, 101010101] ),
		Set Display Width( 132 )
	),
	New Column( "Count of One",
		Numeric,
		"Ordinal",
		Format( "Best", 12 ),
		Formula(
			Length( Char( :Number ) ) - Length(
				Substitute( Char( :Number ), "1", "" )
			)
		),
		Set Display Width( 102 )
	)
)
Highlighted
ms
Super User ms
Super User

Re: Count number of occurrences of specific words in a string

Two more alternatives.

Use the Words() function with an empty string as delimiter:

 

b = 111001010;
N Row(Loc(Words(Char(b), ""), "1"));

Or just with math (i.e. without converting number into string). For example:

 

 

b = 111001010;
Sum(Mod(Round(b / 10 ^ (Floor(Log10(b + 1)) :: 0)), 10));

 

 

 

Highlighted
Craige_Hales
Staff (Retired)

Re: Count number of occurrences of specific words in a string

I like that last one! It looks like it will actually work up to 16 bits; 17 consecutive ones can't be stored in a double precision number. The :: operator makes a matrix, and there is a lot of matrix math after that.

 

The words function might be the best one for general use...being easy to explain...

 

Craige
Article Labels

    There are no labels assigned to this post.