Downloads a Statistics Canada _CSV.zip product from
www150.statcan.gc.ca, extracts a CSV member, and returns
the contents as a base R data.frame. The archive is
streamed to a session-scoped tempfile (PUMF zips can be hundreds
of megabytes), and the tempfile is removed when the function
returns. Nothing is written under ~/.cache unless the
caller explicitly opts in via morie_cache_dir.
Usage
morie_ingest_statcan_csv(
url,
member = NULL,
timeout = 600,
user_agent = "morie/r (+https://github.com/rootcoder007/rmorie)",
...
)Arguments
- url
Direct URL of the StatCan
.zipproduct, e.g.https://www150.statcan.gc.ca/n1/pub/82m0013x/2024001/2022_CSV.zip.- member
Name of the CSV inside the archive; defaults to the first
.csventry.- timeout
HTTP timeout in seconds (default 600).
- user_agent
User-Agent string sent with the request.
- ...
Further arguments forwarded to
read_csv(orread.csvif readr is unavailable).
Details
Note that a StatCan catalogue page (e.g.
/n1/en/catalogue/82M0013X) is only an HTML index — the
actual data is linked from the product page
(/n1/pub/82m0013x/82m0013x2024001-eng.htm), which points at
the real ..._CSV.zip.
Examples
# \donttest{
# Requires network access.
url <- paste0(
"https://www150.statcan.gc.ca/n1/pub/82m0013x/",
"2024001/2022_CSV.zip"
)
df <- morie_ingest_statcan_csv(url)
head(df)
#> VERDATE REFPER ADM_RNO COLMODE COLMODEY COLMODEP GEOGPRV GEODGHR4
#> 1 20250612 202201-202210 100011 1 6 6 35 35970
#> 2 20250612 202201-202210 100013 1 6 6 24 24916
#> 3 20250612 202201-202210 100022 6 2 1 35 35941
#> 4 20250612 202201-202210 100054 2 6 6 59 59911
#> 5 20250612 202201-202210 100055 1 6 6 24 24913
#> 6 20250612 202201-202210 10006 1 6 6 35 35944
#> DHHDGHSZ EDDVH3 DHHGAGE DHH_SEX DOMAC MAC_05 DOGEN GEN_01 GEN_05 GEN_10
#> 1 1 2 5 1 1 6 1 3 3 1
#> 2 1 3 4 2 1 1 1 3 3 3
#> 3 2 3 1 2 1 6 1 3 4 4
#> 4 2 3 2 2 1 2 1 2 3 3
#> 5 2 3 3 1 1 1 1 3 4 3
#> 6 2 3 5 1 1 6 1 4 3 3
#> GEN_15 GEN_20 DOLSM LSM_01 LSMDVSWL DOHWT HWTDGISW HWTDGWHO HWTDGBCC DOWTP
#> 1 6 2 1 10 1 1 1 6 1 1
#> 2 4 3 1 7 2 1 2 6 2 1
#> 3 6 2 1 6 2 1 6 1 6 1
#> 4 6 2 1 9 1 1 1 6 1 1
#> 5 3 3 1 5 3 1 1 6 1 1
#> 6 6 2 1 6 2 1 2 6 2 1
#> WTP_50 DOCOV2 COV2_005 COV2_10A COV2_10B COV2_10C COV2_10D COV2_10E COV2_10F
#> 1 3 1 3 1 1 1 1 1 2
#> 2 1 1 4 1 1 2 1 2 1
#> 3 3 1 4 1 2 2 2 2 2
#> 4 3 1 4 1 1 2 2 2 2
#> 5 2 1 4 1 1 1 1 1 1
#> 6 1 1 3 1 1 2 1 2 2
#> COV2_10G COV2_10H COV2_10I COV2_10J COV2_038 COV2_030 COV2_035 COV2_041
#> 1 2 1 2 2 1 2 3 96
#> 2 2 1 2 2 1 2 4 96
#> 3 2 2 2 2 1 2 3 96
#> 4 1 1 2 2 1 2 3 96
#> 5 1 1 2 2 1 2 3 96
#> 6 2 2 2 2 1 2 3 96
#> COV2_45A COV2_45B COV2_45C COV2_45D COV2_45E COV2_45F COV2_45G COV2_45H
#> 1 6 6 6 6 6 6 6 6
#> 2 6 6 6 6 6 6 6 6
#> 3 6 6 6 6 6 6 6 6
#> 4 6 6 6 6 6 6 6 6
#> 5 6 6 6 6 6 6 6 6
#> 6 6 6 6 6 6 6 6 6
#> COV2_45I COV2_040 DOCOV3 COV3_005 DOCCC CCC_05 CCC_80 CCC_85 CCC_90 CCC_135
#> 1 6 6 1 6 1 2 2 2 2 2
#> 2 6 6 1 6 1 2 2 2 2 2
#> 3 6 6 1 6 1 2 2 2 2 1
#> 4 6 6 1 6 1 2 2 2 2 2
#> 5 6 6 1 6 1 2 2 2 2 1
#> 6 6 6 1 6 1 2 1 1 2 2
#> CCCDGSKL CCCDGCAR DOCC1 CC1_140 CC1_145 CC1_155 CC1_170 DOWDM WDMDGDIF DOOHM
#> 1 2 2 1 2 2 2 2 1 1 1
#> 2 1 2 1 2 2 2 2 1 2 1
#> 3 6 6 1 1 2 6 6 1 2 1
#> 4 2 6 1 1 2 6 6 1 1 1
#> 5 9 9 1 1 2 2 2 1 2 1
#> 6 1 2 1 2 2 2 2 1 2 1
#> OHM_05 OHM_15 DOOHM3 OHM3_05 OHM3_10 OHM3_15 OHM3_18 OHM3_20A OHM3_20B
#> 1 2 4 1 2 2 2 1 1 2
#> 2 3 4 1 2 2 2 2 6 6
#> 3 3 4 1 1 1 2 2 6 6
#> 4 1 4 1 3 2 2 2 6 6
#> 5 3 2 1 2 1 2 2 6 6
#> 6 3 4 1 2 1 1 2 6 6
#> OHM3_20C OHM3_20D OHM3_20E OHM3_20F OHM3_45 OHM3G50A OHM3_50C OHM3_50E DOEAH
#> 1 2 2 2 2 3 9 9 9 0
#> 2 6 6 6 6 1 1 2 2 0
#> 3 6 6 6 6 1 2 2 1 0
#> 4 6 6 6 6 2 6 6 6 0
#> 5 6 6 6 6 1 1 2 2 0
#> 6 6 6 6 6 1 1 2 2 0
#> EAHG05 EAHDVCHO EAHDVFFD EAHDVFRU EAHDVGRN EAHDVJUI EAHDVORA EAHDVSCD
#> 1 6 999.6 999.6 999.6 999.6 999.6 999.6 999.6
#> 2 6 999.6 999.6 999.6 999.6 999.6 999.6 999.6
#> 3 6 999.6 999.6 999.6 999.6 999.6 999.6 999.6
#> 4 6 999.6 999.6 999.6 999.6 999.6 999.6 999.6
#> 5 6 999.6 999.6 999.6 999.6 999.6 999.6 999.6
#> 6 6 999.6 999.6 999.6 999.6 999.6 999.6 999.6
#> EAHDVSOD EAHDVSTA EAHDVVEG EAHDVEND EAHDVBVT EAHDVBVG EAHDVFVT EAHDVFVG DOPAA
#> 1 999.6 999.6 999.6 999.6 9999.6 6 9999.6 6 0
#> 2 999.6 999.6 999.6 999.6 9999.6 6 9999.6 6 0
#> 3 999.6 999.6 999.6 999.6 9999.6 6 9999.6 6 0
#> 4 999.6 999.6 999.6 999.6 9999.6 6 9999.6 6 0
#> 5 999.6 999.6 999.6 999.6 9999.6 6 9999.6 6 0
#> 6 999.6 999.6 999.6 999.6 9999.6 6 9999.6 6 0
#> PAA_05 PAA_10A PAA_10B PAA_10C PAA_10D PAA_10E PAA_10F PAA_10G PAA_15A
#> 1 6 6 6 6 6 6 6 6 996
#> 2 6 6 6 6 6 6 6 6 996
#> 3 6 6 6 6 6 6 6 6 996
#> 4 6 6 6 6 6 6 6 6 996
#> 5 6 6 6 6 6 6 6 6 996
#> 6 6 6 6 6 6 6 6 6 996
#> PAA_15B PAA_30 PAA_35 PAA_40A PAA_40B PAA_40C PAA_40D PAA_40E PAA_40F PAA_40G
#> 1 96 6 6 6 6 6 6 6 6 6
#> 2 96 6 6 6 6 6 6 6 6 6
#> 3 96 6 6 6 6 6 6 6 6 6
#> 4 96 6 6 6 6 6 6 6 6 6
#> 5 96 6 6 6 6 6 6 6 6 6
#> 6 96 6 6 6 6 6 6 6 6 6
#> PAA_45A PAA_45B PAA_60 PAA_65 PAA_70A PAA_70B PAA_70C PAA_70D PAA_70E PAA_70F
#> 1 996 96 6 6 6 6 6 6 6 6
#> 2 996 96 6 6 6 6 6 6 6 6
#> 3 996 96 6 6 6 6 6 6 6 6
#> 4 996 96 6 6 6 6 6 6 6 6
#> 5 996 96 6 6 6 6 6 6 6 6
#> 6 996 96 6 6 6 6 6 6 6 6
#> PAA_70G PAA_75A PAA_75B PAA_95 PAA_100A PAA_100B PAADVMVA PAADVACV PAADVAC2
#> 1 6 996 96 6 996 96 99996 6 6
#> 2 6 996 96 6 996 96 99996 6 6
#> 3 6 996 96 6 996 96 99996 6 6
#> 4 6 996 96 6 996 96 99996 6 6
#> 5 6 996 96 6 996 96 99996 6 6
#> 6 6 996 96 6 996 96 99996 6 6
#> PAADVVIG PAADVVOL PAADVWHO DOUPE UPE_05 UPE_10 UPE_15 UPE_20 UPE_25 UPE_30
#> 1 99996 99996 6 1 1 2 2 6 6 6
#> 2 99996 99996 6 1 2 6 2 6 6 6
#> 3 99996 99996 6 1 2 6 2 6 6 6
#> 4 99996 99996 6 1 1 1 2 6 6 6
#> 5 99996 99996 6 1 2 6 2 6 6 6
#> 6 99996 99996 6 1 2 6 2 6 6 6
#> UPE_35 UPE_40A UPE_45 UPE_40B UPE_50 UPE_55 UPE_60A UPE_65 UPE_70 UPE_75
#> 1 6 2 6 2 6 6 2 6 6 6
#> 2 6 2 6 2 6 6 2 6 6 6
#> 3 6 2 6 2 6 6 2 6 6 6
#> 4 6 2 6 2 6 6 2 6 6 6
#> 5 6 2 6 2 6 6 2 6 6 6
#> 6 6 2 6 2 6 6 2 6 6 6
#> UPE_80 UPE_85 DOSBE SBE_005 SBE_010 DOSLP SLPG005 SLP_010 SLP_015 SLP_020
#> 1 2 6 0 96 6 0 96 6 6 6
#> 2 2 6 0 96 6 0 96 6 6 6
#> 3 1 4 0 96 6 0 96 6 6 6
#> 4 2 6 0 96 6 0 96 6 6 6
#> 5 2 6 0 96 6 0 96 6 6 6
#> 6 2 6 0 96 6 0 96 6 6 6
#> DOCSS CSS_05 CSS_15 CSSG20 CSS_25 CSS_30 CSS_40 DOSPU SPU_05 SPU_20 SMKDVSTY
#> 1 1 2 6 6 996 996 6 1 6 996 6
#> 2 1 1 1 3 996 996 6 1 2 996 4
#> 3 1 2 6 6 996 996 6 1 6 996 96
#> 4 1 2 6 6 996 996 6 1 6 996 6
#> 5 1 2 6 6 996 996 6 1 6 996 6
#> 6 1 1 1 3 996 996 6 1 1 20 3
#> SMKDGYCS SMKDGSTP DOECV ECV_05 ECVG15 ECV_20 ECVDVSMK DOECV2 ECV2G05A
#> 1 6 6 1 2 6 6 5 1 6
#> 2 6 4 1 2 6 6 4 1 6
#> 3 6 6 1 2 6 6 5 1 6
#> 4 6 6 1 2 6 6 5 1 6
#> 5 6 6 1 1 1 1 3 1 1
#> 6 6 4 1 9 9 9 9 1 9
#> ECV2G05B ECV2G05C ECV2_10 ECV2_15 DOALC ALC_05 ALC_10 ALC_15 ALC_20 ALCDVTTM
#> 1 6 6 6 6 1 2 6 96 96 3
#> 2 6 6 6 6 1 1 1 4 3 1
#> 3 6 6 6 6 1 2 6 96 96 3
#> 4 6 6 6 6 1 1 1 6 2 1
#> 5 2 9 6 6 1 1 1 2 1 1
#> 6 9 9 9 9 1 1 1 7 1 1
#> DOCAN CAN_05C CAN_35A CAN_35B CAN_35C CAN_35D CAN_35E CAN_35F CAN_35G CAN_35H
#> 1 1 2 6 6 6 6 6 6 6 6
#> 2 1 2 6 6 6 6 6 6 6 6
#> 3 1 2 6 6 6 6 6 6 6 6
#> 4 1 1 6 6 6 6 6 6 6 6
#> 5 1 2 6 6 6 6 6 6 6 6
#> 6 1 2 6 6 6 6 6 6 6 6
#> CAN_35I CAN_35J CAN_40 DOFLU FLU_05 FLU_10 FLU_15 FLU_20A FLU_20B FLU_20C
#> 1 6 6 6 1 1 1 6 6 6 6
#> 2 6 6 6 1 2 96 6 1 2 2
#> 3 6 6 6 1 1 10 9 6 6 6
#> 4 6 6 6 1 2 96 6 2 2 2
#> 5 6 6 6 1 1 12 6 6 6 6
#> 6 6 6 6 1 1 10 6 6 6 6
#> FLU_20D FLU_20E FLU_20F DORHC RHC_05 DOLMAM LBFDGHPW LBFDVPFT LBFDGWSS
#> 1 6 6 6 1 1 1 96 6 6
#> 2 2 2 2 1 1 1 40 1 1
#> 3 6 6 6 1 1 1 96 6 6
#> 4 2 2 1 1 3 1 96 6 2
#> 5 6 6 6 1 1 1 40 1 1
#> 6 6 6 6 1 2 1 96 6 6
#> SDCDGIMM SDCDVABT SDCDVFLA DOLAN DOINL INL_05 DOINP INP_05 DOPCN PCN_05
#> 1 2 2 1 1 1 3 1 2 1 1
#> 2 1 2 2 1 1 1 1 1 1 1
#> 3 1 2 2 1 1 2 1 1 1 1
#> 4 1 2 2 1 1 2 1 2 1 1
#> 5 2 2 1 1 1 1 1 1 1 1
#> 6 1 2 2 1 1 3 1 1 1 1
#> PCNDGCRA DOFSC FSCDVAF2 FSCDVCF2 FSCDVHF2 INCDGHH INCDGRCA INCDGRPR INCDGRRS
#> 1 2 1 0 6 0 4 2 2 2
#> 2 2 1 0 6 0 5 5 5 5
#> 3 2 1 0 0 0 9 9 9 9
#> 4 2 1 0 0 0 5 5 5 5
#> 5 2 1 0 0 0 5 4 4 5
#> 6 2 1 0 6 0 5 5 5 5
#> WTS_M
#> 1 215.62
#> 2 338.32
#> 3 189.70
#> 4 145.95
#> 5 355.66
#> 6 1271.28
# }
