Here is one way of handling your issue. Other Community Members may have better methods, but this one seems to always be able to work. I am using the Sample data table called Blood Pressure.
txnelson_0-1633646371787.png
What the script below does, is to generate the JSL statement required to select the rows where if you sum up all of the continuous columns in the data table, and the sum is a missing value, then select the row. So the target JSL that needs to be built is
dt << select where(ismissing(sum(as column(\!"BP 8M\!"),as column(\!"BP 8M\!"),as column(\!"BP 8M\!"),as column(\!"BP 8M\!"),as column(\!"BP 8M\!"),as column(\!"BP 8M\!"),as column(\!"BP 8M\!"),as column(\!"BP 8M\!"),as column(\!"BP 8M\!")))==1);
The script creates this code in a string variable, and then it is executed using
Eval( Parse( ...........);
In the example, I create 3 new rows in the data table, which by default have missing values. The script then runs and finds those 3 rows.
Names Default To Here( 1 );
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << add rows(3);
colNames = dt << get column names( continuous, string );
theExpr = "dt << select where(ismissing(sum(as column(\!"" || colNames[1] || "\!")";
For( i = 2, i <= N Items( colNames ), i++,
theExpr = theExpr || ",as column(\!"" || colNames[1] || "\!")"
);
theExpr = theExpr || "))==1);";
Eval( Parse( theExpr ) )
;
txnelson_1-1633646743435.png
Jim