cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
Choose Language Hide Translation Bar
ambs
Level II

How to replace Missing Values w/ '0' using JSL

How do I replace Missing Values w/ '0' using JSL?

I can do this manually using 'Find and Replace All', but I need to incorporate it in a code that runs automatically everyday.

13 REPLIES 13
RaginCajun
Level I

Re: How to replace Missing Values w/ '0' using JSL

This works when I am running it from a scripting window using play button, but not within a debugger or launching it by autorun of the .jsl. 

 

dtLongestWaitStates << set name( "LongestWaitStates" );
dtLongestWaitStates = Current Data Table();
nc = dtLongestWaitStates << get column names( numeric );
For( i = 1, i <= N Items( nc ), i++,
	nc[i][dtLongestWaitStates << get rows where( Is Missing( nc[i][] ) )] = 0
);

 

RaginCajun

JMP13.2.1

jkwiggins
Level II

Re: How to replace Missing Values w/ '0' using JSL

Another way...

 

 

clsMat = dt << Get As Matrix( {"colA", "colB"} );

clsMat[Loc( Is Missing( clsMat ) )] = 0;

:colA << Set Values( clsRej[0, 1] );
:colB << Set Values( clsRej[0, 2] );

 

etc.

 

logical indexing is often faster than loops

Jason Wiggins
masakit
Level I

Re: How to replace Missing Values w/ '0' using JSL

cool! ... in the last 2 lines, clsRej should be replaced to clsMat, right?

meanwhile, do we have any similar solutions for character column?

msharp
Super User (Alumni)

Re: How to replace Missing Values w/ '0' using JSL

Since no one else answered, the solution is the same, just grab character columns instead and set the rows equal to the character you find fitting--"N/A" in the below case.

 

Just be careful, setting it =0 will change the column to numeric and will remove all the character data, however ="0" should be fine.

 

 

dt = Current Data Table();
nc = dt << get column names( Character );

For( i = 1, i <= N Items( nc ), i++,
  nc[i][dt << get rows where( Is Missing( nc[i][] ) )] = "N/A"
);