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.
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
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
cool! ... in the last 2 lines, clsRej should be replaced to clsMat, right?
meanwhile, do we have any similar solutions for character column?
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"
);