@@ -319,33 +319,27 @@ public static BufferedDataTable computeStatisticsTable(final BufferedDataTable i
319319 final String [] selectedColumns , final ExecutionContext executionContext ,
320320 final Collection <Statistic > selectedStatistics )
321321 throws CanceledExecutionException {
322- final var eligibleCols = Arrays .stream (selectedColumns )//
323- .filter (name -> {
324- var type = inputTable .getDataTableSpec ().getColumnSpec (name ).getType ();
325- return type .isCompatible (DoubleValue .class ) || type .isCompatible (StringValue .class );
326- })//
327- .toArray (String []::new );
328322
329323 // trivial case -- nothing to do
330324 final var statisticsTable = executionContext .createDataContainer (getStatisticsTableSpec (selectedStatistics ));
331- if (eligibleCols .length == 0 ) {
325+ if (selectedColumns .length == 0 ) {
332326 statisticsTable .close ();
333327 return statisticsTable .getTable ();
334328 }
335329
336330 // compute statistics for each column individually
337331 final var selectedColumnTables =
338- StatisticsTableUtil .splitTableByColumnNames (inputTable , eligibleCols , true , true , executionContext );
332+ StatisticsTableUtil .splitTableByColumnNames (inputTable , selectedColumns , true , true , executionContext );
339333 final var selectedColumnTablesWithMissingValues =
340- StatisticsTableUtil .splitTableByColumnNames (inputTable , eligibleCols , false , true , executionContext );
341- for (var columnName : eligibleCols ) {
334+ StatisticsTableUtil .splitTableByColumnNames (inputTable , selectedColumns , false , true , executionContext );
335+ for (var columnName : selectedColumns ) {
342336 final var allColumnStatistics = new UnivariateStatistics ();
343337 final var sortedTable =
344338 BufferedDataTableSorter .sortTable (selectedColumnTables .get (columnName ), 0 , executionContext );
345339 final var tableWithMissingValues = selectedColumnTablesWithMissingValues .get (columnName );
346340 allColumnStatistics .performStatisticsCalculationForAllColumns (sortedTable , executionContext );
347- boolean isStringColumn = sortedTable .getSpec ().getColumnSpec (0 ).getType ().isCompatible (StringValue .class );
348- if (! isStringColumn ) {
341+ boolean isNumericColumn = sortedTable .getSpec ().getColumnSpec (0 ).getType ().isCompatible (DoubleValue .class );
342+ if (isNumericColumn ) {
349343 allColumnStatistics .performStatisticsCalculationForNumericColumns (sortedTable , executionContext );
350344 }
351345 allColumnStatistics .performMissingValuesComputation (tableWithMissingValues , executionContext );
0 commit comments