public void addCategories(final Collection<String> categories) { for (final String category : categories) { addCategory(category); } }
public static Crosstab<Serializable> createCrosstab() { final CrosstabDimension measuresDimension = new CrosstabDimension(DIMENSION_NAME_MEASURES); measuresDimension.addCategory(MEASURE_MATCH_COUNT); measuresDimension.addCategory(MEASURE_SAMPLE); final CrosstabDimension patternDimension = new CrosstabDimension(DIMENSION_NAME_PATTERN); return new Crosstab<>(Serializable.class, measuresDimension, patternDimension); }
@Override public CrosstabResult getResult() { final CrosstabDimension columnDimension = new CrosstabDimension("Column"); final CrosstabDimension weekdayDimension = new CrosstabDimension("Weekday"); weekdayDimension.addCategory("Sunday").addCategory("Monday").addCategory("Tuesday").addCategory("Wednesday") .addCategory("Thursday").addCategory("Friday").addCategory("Saturday"); final Crosstab<Integer> crosstab = new Crosstab<>(Integer.class, columnDimension, weekdayDimension); for (final InputColumn<Date> col : dateColumns) { columnDimension.addCategory(col.getName()); final CrosstabNavigator<Integer> nav = crosstab.where(columnDimension, col.getName()); final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); nav.where(weekdayDimension, "Sunday").put(countMap.get(Calendar.SUNDAY).get()); nav.where(weekdayDimension, "Monday").put(countMap.get(Calendar.MONDAY).get()); nav.where(weekdayDimension, "Tuesday").put(countMap.get(Calendar.TUESDAY).get()); nav.where(weekdayDimension, "Wednesday").put(countMap.get(Calendar.WEDNESDAY).get()); nav.where(weekdayDimension, "Thursday").put(countMap.get(Calendar.THURSDAY).get()); nav.where(weekdayDimension, "Friday").put(countMap.get(Calendar.FRIDAY).get()); nav.where(weekdayDimension, "Saturday").put(countMap.get(Calendar.SATURDAY).get()); } return new CrosstabResult(crosstab); }
@Override public CrosstabResult getResult() { final CrosstabDimension columnDimension = new CrosstabDimension("Column"); final CrosstabDimension weekNumberDimension = new CrosstabDimension("Week number"); final SortedSet<Integer> weekNumbers = new TreeSet<>(); for (final InputColumn<Date> col : dateColumns) { final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); final Set<Integer> weekNumbersOfColumn = countMap.keySet(); weekNumbers.addAll(weekNumbersOfColumn); } for (final Integer weekNumber : weekNumbers) { weekNumberDimension.addCategory(weekNumber + ""); } final Crosstab<Integer> crosstab = new Crosstab<>(Integer.class, columnDimension, weekNumberDimension); for (final InputColumn<Date> col : dateColumns) { columnDimension.addCategory(col.getName()); final CrosstabNavigator<Integer> nav = crosstab.where(columnDimension, col.getName()); final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); for (final Entry<Integer, AtomicInteger> entry : countMap.entrySet()) { final Integer weekNumber = entry.getKey(); final AtomicInteger count = entry.getValue(); nav.where(weekNumberDimension, weekNumber + "").put(count.intValue()); } } return new CrosstabResult(crosstab); }
/** * Puts the given value to the navigated position in the crosstab. * * @param value * the value to put. * @param createCategories * if true, the chosen categories will automatically be created * if they do not already exists in the dimensions of the * crosstab. * @throws IllegalArgumentException * if the position or value is invalid, typically because one or * more dimensions lacks a specified category or the value type * is not acceptable (typically because of class casting issues) * @throws NullPointerException * if some of the specified categories are null */ public void put(final E value, final boolean createCategories) throws IllegalArgumentException, NullPointerException { if (createCategories) { for (int i = 0; i < categories.length; i++) { final String category = categories[i]; final CrosstabDimension dimension = crosstab.getDimension(i); dimension.addCategory(category); } } crosstab.putValue(value, categories); }
@Override public CrosstabResult getResult() { final CrosstabDimension columnDimension = new CrosstabDimension("Column"); final CrosstabDimension yearDimension = new CrosstabDimension("Year"); final SortedSet<Integer> years = new TreeSet<>(); for (final InputColumn<Date> col : dateColumns) { final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); final Set<Integer> yearsOfColumn = countMap.keySet(); years.addAll(yearsOfColumn); } for (final Integer year : years) { yearDimension.addCategory(year + ""); } final Crosstab<Integer> crosstab = new Crosstab<>(Integer.class, columnDimension, yearDimension); for (final InputColumn<Date> col : dateColumns) { columnDimension.addCategory(col.getName()); final CrosstabNavigator<Integer> nav = crosstab.where(columnDimension, col.getName()); final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); for (final Entry<Integer, AtomicInteger> entry : countMap.entrySet()) { final Integer year = entry.getKey(); final AtomicInteger count = entry.getValue(); nav.where(yearDimension, year + "").put(count.intValue()); } } return new CrosstabResult(crosstab); }
@Override public CrosstabResult getResult() { final CrosstabDimension columnDimension = new CrosstabDimension("Column"); final CrosstabDimension monthDimension = new CrosstabDimension("Month"); for (final Month month : Month.values()) { final String monthName = toMonthName(month); monthDimension.addCategory(monthName); } final Crosstab<Integer> crosstab = new Crosstab<>(Integer.class, columnDimension, monthDimension); for (final InputColumn<Date> col : dateColumns) { columnDimension.addCategory(col.getName()); final CrosstabNavigator<Integer> nav = crosstab.where(columnDimension, col.getName()); final Map<Integer, AtomicInteger> countMap = distributionMap.get(col); for (final Entry<Integer, AtomicInteger> entry : countMap.entrySet()) { final Integer monthConstant = entry.getKey(); final Month month = Month.getByCalendarConstant(monthConstant); final AtomicInteger count = entry.getValue(); final String monthName = toMonthName(month); nav.where(monthDimension, monthName).put(count.intValue()); } } return new CrosstabResult(crosstab); }
measureName = BooleanAnalyzer.DIMENSION_COMBINATION_PREFIX + row; measureDimension.addCategory(measureName);
final Set<String> unicodeSetNames = UNICODE_SETS.keySet(); for (final String name : unicodeSetNames) { measureDimension.addCategory(name); final String columnName = column.getName(); final CharacterSetDistributionAnalyzerColumnDelegate delegate = _columnDelegates.get(column); columnDimension.addCategory(columnName);
@Override public NumberAnalyzerResult getResult() { final CrosstabDimension measureDimension = new CrosstabDimension(DIMENSION_MEASURE); measureDimension.addCategory(MEASURE_ROW_COUNT); measureDimension.addCategory(MEASURE_NULL_COUNT); measureDimension.addCategory(MEASURE_HIGHEST_VALUE); measureDimension.addCategory(MEASURE_LOWEST_VALUE); measureDimension.addCategory(MEASURE_SUM); measureDimension.addCategory(MEASURE_MEAN); measureDimension.addCategory(MEASURE_GEOMETRIC_MEAN); measureDimension.addCategory(MEASURE_STANDARD_DEVIATION); measureDimension.addCategory(MEASURE_VARIANCE); measureDimension.addCategory(MEASURE_SECOND_MOMENT); measureDimension.addCategory(MEASURE_SUM_OF_SQUARES); measureDimension.addCategory(MEASURE_MEDIAN); measureDimension.addCategory(MEASURE_PERCENTILE25); measureDimension.addCategory(MEASURE_PERCENTILE75); measureDimension.addCategory(MEASURE_SKEWNESS); measureDimension.addCategory(MEASURE_KURTOSIS); columnDimension.addCategory(column.getName());
@Override public BooleanAnalyzerResult getResult() { CrosstabDimension measureDimension = new CrosstabDimension(DIMENSION_MEASURE); measureDimension.addCategory(MEASURE_ROW_COUNT); measureDimension.addCategory(MEASURE_NULL_COUNT); measureDimension.addCategory(MEASURE_TRUE_COUNT); measureDimension.addCategory(MEASURE_FALSE_COUNT); columnDimension.addCategory(column.getName()); columnDimension.addCategory(column.getName()); columnDimension.addCategory(VALUE_COMBINATION_COLUMN_FREQUENCY); measureName = DIMENSION_COMBINATION_PREFIX + row; measureDimension.addCategory(measureName);
logger.info("getResult()"); final CrosstabDimension measureDimension = new CrosstabDimension(DIMENSION_MEASURES); measureDimension.addCategory(MEASURE_ROW_COUNT); measureDimension.addCategory(MEASURE_NULL_COUNT); measureDimension.addCategory(MEASURE_BLANK_COUNT); measureDimension.addCategory(MEASURE_ENTIRELY_UPPERCASE_COUNT); measureDimension.addCategory(MEASURE_ENTIRELY_LOWERCASE_COUNT); measureDimension.addCategory(MEASURE_TOTAL_CHAR_COUNT); measureDimension.addCategory(MEASURE_MAX_CHARS); measureDimension.addCategory(MEASURE_MIN_CHARS); measureDimension.addCategory(MEASURE_AVG_CHARS); measureDimension.addCategory(MEASURE_MAX_WHITE_SPACES); measureDimension.addCategory(MEASURE_MIN_WHITE_SPACES); measureDimension.addCategory(MEASURE_AVG_WHITE_SPACES); measureDimension.addCategory(MEASURE_UPPERCASE_CHARS); measureDimension.addCategory(MEASURE_UPPERCASE_CHARS_EXCL_FIRST_LETTERS); measureDimension.addCategory(MEASURE_LOWERCASE_CHARS); measureDimension.addCategory(MEASURE_DIGIT_CHARS); measureDimension.addCategory(MEASURE_DIACRITIC_CHARS); measureDimension.addCategory(MEASURE_NON_LETTER_CHARS); measureDimension.addCategory(MEASURE_WORD_COUNT); measureDimension.addCategory(MEASURE_MAX_WORDS); measureDimension.addCategory(MEASURE_MIN_WORDS); columnDimension.addCategory(columnName);
@Override public DateAndTimeAnalyzerResult getResult() { final CrosstabDimension measureDimension = new CrosstabDimension(DIMENSION_MEASURE); measureDimension.addCategory(MEASURE_ROW_COUNT); measureDimension.addCategory(MEASURE_NULL_COUNT); measureDimension.addCategory(MEASURE_HIGHEST_DATE); measureDimension.addCategory(MEASURE_LOWEST_DATE); measureDimension.addCategory(MEASURE_HIGHEST_TIME); measureDimension.addCategory(MEASURE_LOWEST_TIME); measureDimension.addCategory(MEASURE_MEAN); measureDimension.addCategory(MEASURE_MEDIAN); measureDimension.addCategory(MEASURE_PERCENTILE25); measureDimension.addCategory(MEASURE_PERCENTILE75); measureDimension.addCategory(MEASURE_SKEWNESS); measureDimension.addCategory(MEASURE_KURTOSIS); columnDimension.addCategory(column.getName());