mergemap · gallery_run.tsv
mode: run · layout: vertical · 31 events · 3 of 5 joins flagged: 3 warn · 4 other events flagged
!!
= warning or stop (never colour alone) · dashed box = tempfile · ×N = collapsed loop · #k = journal event · hover a node for detail
mergemap join map for gallery_run.tsv (run mode)
Boxes are datasets in memory or on disk; arrows are joins, filters and saves, top to bottom, in do-file order.
01_cars.do
#1 · 01_cars.do line 13 · save saved to: cars_all.dta in 74 × 14 → out 74 × 14 opts: replace lifecycle: overwrite
#1
cars_all.dta
74 × 14 · [saved, overwrites]
#2 · 01_cars.do line 16 · use file: cars_all.dta out 74 × 14 using 74 × 14 opts: clear lifecycle: read produced by 01_cars.do line 13
#2
cars_all.dta
[from line 13]
74 × 14
#3 · 01_cars.do line 17 · keep if in 74 × 14 → out 37 × 14 opts: if carid <= 37 severity: warn removed 37 rows (50.0%), 37 remaining
#3
keep if carid <= 37
!! 74 → 37 (-37, 50.0%)
#4 · 01_cars.do line 18 · save saved to: cars_early.dta in 37 × 14 → out 37 × 14 opts: replace lifecycle: overwrite
#4
cars_early.dta
37 × 14 · [saved, overwrites]
#5 · 01_cars.do line 20 · use file: cars_all.dta out 74 × 14 using 74 × 14 opts: clear lifecycle: read produced by 01_cars.do line 13
#5
cars_all.dta
[from line 13]
74 × 14
#6 · 01_cars.do line 21 · keep if in 74 × 14 → out 37 × 14 opts: if carid > 37 severity: warn removed 37 rows (50.0%), 37 remaining
#6
keep if carid > 37
!! 74 → 37 (-37, 50.0%)
#7 · 01_cars.do line 22 · save saved to: cars_late.dta in 37 × 14 → out 37 × 14 opts: replace lifecycle: overwrite
#7
cars_late.dta
37 × 14 · [saved, overwrites]
#8 · 01_cars.do line 25 · use file: cars_all.dta out 74 × 14 using 74 × 14 opts: clear lifecycle: read produced by 01_cars.do line 13
#8
cars_all.dta
[from line 13]
74 × 14
#9 · 01_cars.do line 26 · drop if in 74 × 14 → out 69 × 14 opts: if missing(rep78) severity: warn removed 5 rows (6.8%), 69 remaining
#9
drop if missing(rep78)
!! 74 → 69 (-5, 6.8%)
#10 · 01_cars.do line 27 · collapse key: rep78 in 69 × 14 → out 5 × 2 opts: (mean) rep_mpg = mpg, by(rep78)
#10
collapse · 69 → 5 obs
(mean) rep_mpg = mpg, by(rep78)
#11 · 01_cars.do line 28 · save saved to: rep_lookup.dta in 5 × 2 → out 5 × 2 opts: replace lifecycle: overwrite
#11
rep_lookup.dta
5 × 2 · [saved, overwrites]
#12 · 01_cars.do line 31 · use file: cars_all.dta out 74 × 14 using 74 × 14 opts: clear lifecycle: read produced by 01_cars.do line 13
#12
cars_all.dta
[from line 13]
74 × 14
#13 · 01_cars.do line 32 · keep in 74 × 14 → out 74 × 2 opts: carid price removed 12 variables, 2 remaining
#13
keep carid price · -12 vars, 2 left
#14 · 01_cars.do line 34 · drop in 74 × 3 → out 74 × 2 opts: price removed 1 variables, 2 remaining
#14
drop price · -1 vars, 2 left
#15 · 01_cars.do line 35 · save saved to: price_index.dta in 74 × 2 → out 74 × 2 opts: replace lifecycle: overwrite
#15
price_index.dta
74 × 2 · [saved, overwrites]
02_join.do
#16 · 02_join.do line 4 · use file: cars_early.dta out 37 × 14 using 37 × 14 opts: clear lifecycle: read produced by 01_cars.do line 18
#16
cars_early.dta
[from 01_cars.do line 18]
37 × 14
#17 · 02_join.do line 7 · append file: cars_late.dta in 37 × 14 → out 74 × 14 using 37 × 14
#17 append +37 obs → 74 × 14
cars_late.dta
37 × 14
work (after append)
74 × 14
#18 · 02_join.do line 10 · merge m:1 key: rep78 file: rep_lookup.dta in 74 × 14 → out 74 × 15 using 5 × 2 matched 69 · master-only 5 · using-only 0 · missing-updated 0 · conflict-updated 0 cover: 93.2% of master · 100.0% of using types: rep78 int vs int dup-key obs: master 68 · using 0 opts: keep(1 3) nogenerate severity: warn 5 master-only kept
#18 merge m:1 rep78 → 74 × 15
matched 69 · master-only 5 · using-only 0
dup-key obs: master 68 · using 0
cover: 93.2% of master · 100.0% of using
opts: keep(1 3)
!! 5 master-only kept
rep_lookup.dta
5 × 2 · key: rep78
work (after merge)
74 × 15
#19 · 02_join.do line 13 · merge 1:1 key: carid file: price_index.dta in 74 × 15 → out 74 × 16 using 74 × 2 matched 74 · master-only 0 · using-only 0 · missing-updated 0 · conflict-updated 0 cover: 100.0% of master · 100.0% of using types: carid int vs int dup-key obs: master 0 · using 0 opts: nogenerate
#19 merge 1:1 carid → 74 × 16
all 74 matched, 100% of both sides
price_index.dta
74 × 2 · key: carid
#20 · 02_join.do line 17 · drop if in 74 × 16 → out 69 × 16 opts: if missing(rep_mpg) severity: warn removed 5 rows (6.8%), 69 remaining
#20
drop if missing(rep_mpg)
!! 74 → 69 (-5, 6.8%)
#21 · 02_join.do line 19 · save saved to: cars_joined.dta in 69 × 16 → out 69 × 16 opts: replace lifecycle: overwrite
#21
cars_joined.dta
69 × 16 · [saved, overwrites]
03_report.do
#22 · 03_report.do line 5 · keep in 50 × 13 → out 50 × 3 opts: state region pop removed 10 variables, 3 remaining
#22
keep state region pop
-10 vars, 3 left
#23 · 03_report.do line 6 · save saved to: census_states.dta in 50 × 3 → out 50 × 3 opts: replace lifecycle: overwrite
#23
census_states.dta
50 × 3 · [saved, overwrites]
#24 · 03_report.do line 9 · use file: census_states.dta out 50 × 3 using 50 × 3 opts: clear lifecycle: read produced by 03_report.do line 6
#24
census_states.dta
[from line 6]
50 × 3
#25 · 03_report.do line 10 · collapse key: region in 50 × 3 → out 4 × 2 opts: (sum) region_pop = pop, by(region)
#25
collapse · 50 → 4 obs
(sum) region_pop = pop, by(region)
#26 · 03_report.do line 11 · save saved to: region_totals.dta in 4 × 2 → out 4 × 2 opts: replace lifecycle: overwrite
#26
region_totals.dta
4 × 2 · [saved, overwrites]
#27 · 03_report.do line 13 · use file: cars_joined.dta out 69 × 16 using 69 × 16 opts: clear lifecycle: read produced by 02_join.do line 19
#27
cars_joined.dta
[from 02_join.do line 19]
69 × 16
#28 · 03_report.do line 14 · merge m:1 key: region file: region_totals.dta in 69 × 16 → out 69 × 17 using 4 × 2 matched 69 · master-only 0 · using-only 0 · missing-updated 0 · conflict-updated 0 cover: 100.0% of master · 100.0% of using types: region byte vs int dup-key obs: master 65 · using 0 opts: keep(1 3) nogenerate severity: warn !! key type drift: region: byte vs int
#28 merge m:1 region → 69 × 17
all 69 matched, 100% of both sides
dup-key obs: master 65 · using 0
!! types: region byte vs int
opts: keep(1 3)
!! key type drift: region: byte vs int
region_totals.dta
4 × 2 · key: region
work (after merge)
69 × 17
#29 · 03_report.do line 19 · merge m:m key: region file: census_states.dta in 69 × 17 → out 69 × 20 using 50 × 3 matched 69 · master-only 0 · using-only 0 · missing-updated 0 · conflict-updated 0 cover: 100.0% of master · 100.0% of using types: region int vs int dup-key obs: master 65 · using 46 severity: warn !! m:m pairs rows by row order within key (not a join)
#29 merge m:m region → 69 × 20
all 69 matched, 100% of both sides
dup-key obs: master 65 · using 46
!! m:m pairs rows by row order within key
(not a join)
census_states.dta
50 × 3 · key: region
#30 · 03_report.do line 20 · drop in 69 × 20 → out 69 × 19 opts: _merge removed 1 variables, 19 remaining
#30
drop _merge · -1 vars, 19 left
#31 · 03_report.do line 22 · save saved to: demo_analysis.dta in 69 × 19 → out 69 × 19 opts: replace lifecycle: overwrite
#31
demo_analysis.dta
69 × 19 · [saved, overwrites]
mergemap · journal gallery_run.tsv · run mode, vertical layout, 31 events · generated 24 Aug 2026 03:01:05 · Stata 19.5 MP · git main @ 4cea22c · self-contained: no scripts, no external assets