Merge and aggregate datasets: Difference between revisions

Line 981:
new Visit("1001", "2020-11-19", 5.3) );
Collections.sort(patients, Comparator.comparing(Patient::patientID));
System.out.println("| PATIENT_ID | LASTNAME | LAST_VISIT | SCORE_SUM | SCORE_AVG |");
for ( Patient patient : patients ) {
System.out.println("| PATIENT_ID | LASTNAME | LAST_VISIT | SCORE_SUM | SCORE_AVG |");
for ( Patient patient : patients ) {
List<Visit> patientVisits = visits.stream().filter( v -> v.visitID == patient.patientID() ).toList();
String lastVisit = patientVisits.stream().map( v -> v.visitDate )
.map( v -> v.visitDate ).max(Comparator.naturalOrder()).orElseGet( () -> " None " );
String lastVisit = patientVisits.stream().map( v -> v.visitDate )
DoubleSummaryStatistics statistics = patientVisits.stream().filter( v -> v.score != null )
.max(Comparator.naturalOrder()).orElseGet( () -> " None " );
.filter( v -> v.score != null ).mapToDouble(Visit::score).summaryStatistics();
DoubleSummaryStatistics statistics = patientVisits.stream().filter( v -> v.score != null )
.mapToDouble(Visit::score).summaryStatistics();
double scoreSum = statistics.getSum();
double scoreAverage = statistics.getAverage();
String patientDetails = String.format("%12s%11s%13s%12.2f%12.2f",
patient.patientID, patient.lastName, lastVisit, scoreSum, scoreAverage);
System.out.println(patientDetails);
}
Line 1,010 ⟶ 1,002:
 
}
 
</syntaxhighlight>
{{ out }}
871

edits