mapRpart function

String mapRpart(
  1. WidgetRef ref,
  2. String code
)

Map boost template patterns in code to their current values.

Implementation

String mapRpart(WidgetRef ref, String code) {
  // Obtain the current values of the global variables.

  int minSplit = ref.read(treeMinSplitProvider);
  int maxDepth = ref.read(treeMaxDepthProvider);
  int minBucket = ref.read(treeMinBucketProvider);

  bool treeIncludeMissing = ref.read(treeIncludeMissingProvider);

  double complexity = ref.read(treeComplexityProvider);

  String lossMatrix = ref.read(treeLossMatrixProvider);
  String priors = ref.read(treePriorsProvider);

  // Perform the mapping.

  code = code.replaceAll(
    '<RPART_INCLUDE_MISSING>',
    treeIncludeMissing
        ? ''
        : 'usesurrogate = 0,\n                          maxsurrogate = 0,\n                          ',
  );
  code = code.replaceAll('<MINSPLIT>', 'minsplit     = ${minSplit.toString()}');
  code = code.replaceAll(
    '<MINBUCKET>',
    'minbucket    = ${minBucket.toString()}',
  );
  code = code.replaceAll('<MAXDEPTH>', 'maxdepth     = ${maxDepth.toString()}');
  code = code.replaceAll('<CP>', 'cp           = ${complexity.toString()}');
  code = code.replaceAll(
    '<PRIORS>',
    priors.isNotEmpty ? ', prior = c($priors)' : '',
  );
  code = code.replaceAll(
    '<LOSS>',
    lossMatrix.isNotEmpty ? ', loss = matrix(c($lossMatrix))' : '',
  );

  return (code);
}