Here is a change in the script that I think you might find as a good approach. What I interpret as what you want to do, is to create a numeric column that contains the values from the character columns you select, but if the values contain a "<" symbol, make those entries a zero(0). The script below does that, without creating new columns. It converts the columns to numeric, and sets the "<" cells to zero.
Names Default To Here( 1 );
dt = Data Table( "Example Data" );
col_dlg = New Window( "Column Select",
Panel Box( "Select columns to create NonDetect table with",
col_clist = Col List Box( all, width( 200 ) ),
Button Box( "Ok",
selected_column_list = col_clist << getselected;
dt2 = dt << Subset( Output Table( "NonDetect" ), columns( selected_column_list ) );
// Loop across the columns in the new data table and convert them to numeric
// Cells with nonnumeric values will be set to Missing Values, which then can
// be identified and set to 0
For( i = 1, i <= N Items( selected_column_list ), i++,
// Change the column to numeric/continuous
// The names in the data table are very complex, containing symbols, etc.
// that JMP will confuse as operators. Therefore, using the Column()
// function, or a :Name(" ") function to wrap around the column name
// needs to be used
Column( dt2, selected_column_list[i] ) << data type( numeric ) <<
modeling type( continuous );
// Now find all of the rows in the table that have Missing Values
// in the target column, and then set them all to "0" in one
// statement
Column( dt2, selected_column_list[i] )[dt << get rows where(
Is Missing( As Column( dt2, selected_column_list[i] ) )
)] = 0;
);
col_dlg << close window;
)
)
);
You could create new columns and set a formula as you had indicated in your last response. The issue you are having with what you provided, is dealing with the complex column names. Here is how that would work
If( Contains( :Name( "Column 10 1,2,3,4,6,7,8-HpCDD" ), "<" ),
0,
Num( :Name( "Column 10 1,2,3,4,6,7,8-HpCDD" ) )
)
Jim