def calculateStats(results, Fields, Filter):
    """ Calculates S_ (Sum), A_ (Avg/mean), and D_ (std Deviation) for each field"""
    try:
        for field in Fields:
            #print field,field,results[field]
            parts = field.split('_')
            if len(parts) > 1: prefix = parts[0] + '_'
            else: prefix = ''
            if len(results[field]) > 1:
                results['S_' + field] = MLab.sum(results[field])
                results['A_' + field] = MLab.mean(results[field])
                results['D_' + field] = MLab.std(
                    results[field]) / (MLab.sqrt(len(results[field])) - 1)
            else:
                results['S_' + field] = results[field][0]
                results['A_' + field] = results[field][0]
                results['D_' + field] = 0.0
            Filtered = MLab.nonzero(
                results[prefix + 'TgtFound'][:len(results[field]) - 1])
            if len(Filtered) > 1:
                TgtFoundResults = MLab.choose(Filtered, results[field])
                results['N_' + field] = MLab.mean(TgtFoundResults)
                results['E_' + field] = MLab.std(TgtFoundResults) / (
                    MLab.sqrt(len(TgtFoundResults)) - 1)
            else:
                results['N_' + field] = MLab.choose(Filtered,
                                                    results[field])[0]
                results['E_' + field] = 0.0
        results['RtngConfCorr'] = calculateCorrelation(results['NavConf'],
                                                       results['DirRtng'])
        results['RtngCorrCorr'] = calculateCorrelation(results['NavConf'],
                                                       results['TgtFound'])
        results['ConfCorrCorr'] = calculateCorrelation(results['DirRtng'],
                                                       results['TgtFound'])
        results['RtngEffcCorr'] = calculateCorrelation(results['NavConf'],
                                                       results['Efficiency'])
        results['ConfEffcCorr'] = calculateCorrelation(results['DirRtng'],
                                                       results['Efficiency'])
        results['A_CorrTgt'] = results['CorrTgt'] / float(results['IncrTgt'] +
                                                          results['CorrTgt'])
    except IndexError:
        pass  #print 'ERROR: Missing keys when calculating stats for', field, Filter
    except KeyError:
        pass  #print 'ERROR: Missing keys when calculating stats for', field, Filter
    except ValueError:
        print 'ERROR: Invalid entry in choice array', field, Filtered, len(
            results[field]), '\n', results[field]