code: static protected <T> void distributMissing(List<ClassificationDataSet> splits, double[] fracs, ClassificationDataSet source, IntList hadMissing)
      {
  	for (int i : hadMissing)
  	{
  	    DataPoint dp = source.getDataPoint(i);
  
  	    for (int j = 0; j < fracs.length; j++)
  	    {
  		double nw = fracs[j] * source.getWeight(i);
  		if (Double.isNaN(nw))//happens when no weight is available
  		    continue;
  		if (nw <= 1e-13)
  		    continue;
  
  		splits.get(j).addDataPoint(dp, source.getDataPointCategory(i), nw);
  	    }
  	}
      }
docs: Distributes a list of datapoints that had missing values to each split, re-weighted by the indicated fractions
  @param <T>
  @param splits a list of lists, where each inner list is a split
  @param fracs the fraction of weight to each split, should sum to one
  @param source
  @param hadMissing the list of datapoints that had missing values