Skip to contents

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 .zip product, 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 .csv entry.

timeout

HTTP timeout in seconds (default 600).

user_agent

User-Agent string sent with the request.

...

Further arguments forwarded to read_csv (or read.csv if readr is unavailable).

Value

A base R data.frame.

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
# }