getLargeFactors function

List<String> getLargeFactors(
  1. WidgetRef ref
)

Returns a list of factor variables that have more unique values than the maxFactor threshold. A factor is considered "large" if its number of unique values exceeds maxFactor.

Implementation

List<String> getLargeFactors(WidgetRef ref) {
  final Map<String, dynamic> metaData = ref.read(metaDataProvider);

  final int maxFactor = ref.read(maxFactorProvider);

  List<String> largeFactors = [];

  metaData.forEach((varName, varData) {
    if (varData['datatype']?.contains('factor') ||
        varData['datatype']?.contains('character') ||
        varData['datatype']?.contains('ordered')) {
      final uniqueCount = varData['unique']?[0] ?? 0;
      if (uniqueCount >= maxFactor) {
        largeFactors.add(varName);
      }
    }
  });

  return largeFactors;
}