/** Creates a MathExpression filter with the given expression */ protected Filter getFilter(String expression) { MathExpression f = new MathExpression(); f.setExpression(expression); f.setIgnoreRange("" + (m_AttIndex + 1)); f.setInvertSelection(true); return f; }
/** * Parses a given list of options. * * <p> * <!-- options-start --> * Valid options are: * * <p> * * <pre> -unset-class-temporarily * Unsets the class index temporarily before the filter is * applied to the data. * (default: no)</pre> * * <pre> -E <expression> * Specify the expression to apply. Eg. pow(A,6)/(MEAN+MAX) * Supported operators are +, -, *, /, pow, log, * abs, cos, exp, sqrt, tan, sin, ceil, floor, rint, (, ), * MEAN, MAX, MIN, SD, COUNT, SUM, SUMSQUARED, ifelse</pre> * * <pre> -R <index1,index2-index4,...> * Specify list of columns to ignore. First and last are valid * indexes. (default none)</pre> * * <pre> -V * Invert matching sense (i.e. only modify specified columns)</pre> * * <!-- options-end --> * * @param options the list of options as an array of strings * @throws Exception if an option is not supported */ public void setOptions(String[] options) throws Exception { super.setOptions(options); String expString = Utils.getOption('E', options); if (expString.length() != 0) { setExpression(expString); } else { setExpression(m_defaultExpression); } String ignoreList = Utils.getOption('R', options); if (ignoreList.length() != 0) { setIgnoreRange(ignoreList); } setInvertSelection(Utils.getFlag('V', options)); }