Merge and aggregate datasets: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
|||
Line 67: | Line 67: | ||
* [[Read a file line by line]] |
* [[Read a file line by line]] |
||
<br><br> |
<br><br> |
||
=={{header|11l}}== |
|||
{{trans|Python: Stdlib csv only}} |
|||
<lang 11l>V patients_csv = |
|||
‘PATIENT_ID,LASTNAME |
|||
1001,Hopper |
|||
4004,Wirth |
|||
3003,Kemeny |
|||
2002,Gosling |
|||
5005,Kurtz’ |
|||
V visits_csv = |
|||
‘PATIENT_ID,VISIT_DATE,SCORE |
|||
2002,2020-09-10,6.8 |
|||
1001,2020-09-17,5.5 |
|||
4004,2020-09-24,8.4 |
|||
2002,2020-10-08, |
|||
1001,,6.6 |
|||
3003,2020-11-12, |
|||
4004,2020-11-05,7.0 |
|||
1001,2020-11-19,5.3’ |
|||
F csv2list(s) |
|||
[[String]] rows |
|||
L(row) s.split("\n") |
|||
rows [+]= row.split(‘,’) |
|||
R rows |
|||
V patients = csv2list(patients_csv) |
|||
V visits = csv2list(visits_csv) |
|||
V result = copy(patients) |
|||
result.sort_range(1..) |
|||
result[0].append(‘LAST_VISIT’) |
|||
V last = Dict(visits[1..], p_vis -> (p_vis[0], p_vis[1])) |
|||
L(record) 1 .< result.len |
|||
result[record].append(last.get(result[record][0], ‘’)) |
|||
result[0] [+]= [‘SCORE_SUM’, ‘SCORE_AVG’] |
|||
V n = Dict(patients[1..], p -> (p[0], 0)) |
|||
V tot = Dict(patients[1..], p -> (p[0], 0.0)) |
|||
L(record) visits[1..] |
|||
V p = record[0] |
|||
V score = record[2] |
|||
I !score.empty |
|||
n[p]++ |
|||
tot[p] += Float(score) |
|||
L(record) 1 .< result.len |
|||
V p = result[record][0] |
|||
I n[p] != 0 |
|||
result[record] [+]= [‘#3.1’.format(tot[p]), ‘#2.2’.format(tot[p] / n[p])] |
|||
E |
|||
result[record] [+]= [‘’, ‘’] |
|||
L(record) result |
|||
print(‘| ’record.map(r -> r.center(10)).join(‘ | ’)‘ |’)</lang> |
|||
{{out}} |
|||
<pre> |
|||
| PATIENT_ID | LASTNAME | LAST_VISIT | SCORE_SUM | SCORE_AVG | |
|||
| 1001 | Hopper | 2020-11-19 | 17.4 | 5.80 | |
|||
| 2002 | Gosling | 2020-10-08 | 6.8 | 6.80 | |
|||
| 3003 | Kemeny | 2020-11-12 | | | |
|||
| 4004 | Wirth | 2020-11-05 | 15.4 | 7.70 | |
|||
| 5005 | Kurtz | | | | |
|||
</pre> |
|||
=={{header|AutoHotkey}}== |
=={{header|AutoHotkey}}== |