diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 425da93..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.Rbuildignore b/.Rbuildignore index dacef8f..b425821 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,3 +1,5 @@ +^renv$ +^renv\.lock$ ^.*\.Rproj$ ^\.Rproj\.user$ ^\.DS_Store$ @@ -8,3 +10,19 @@ ^CODE_OF_CONDUCT\.md$ ^CONTRIBUTING\.md$ ^NEWS\.md$ +^\.tmp$ +^check_output.*\.txt$ +^R_CMD_CHECK_FIXES\.md$ +^CRITICAL_ISSUE_create_mock_data\.md$ +^PKGDOWN_FIX_SUMMARY\.md$ +^PKGDOWN_SETUP\.md$ +^SURVIVAL_SECTION_IMPLEMENTED\.md$ +^PR_REVIEW_STATUS\.md$ +^PR_REVIEW_RESPONSE\.md$ +^PR_DESCRIPTION_ADDENDUM\.md$ +^REVIEWER_QUICKSTART\.md$ +^LOCAL_TESTING_GUIDE\.md$ +^docs$ +^_pkgdown\.yml$ +^development$ +^\.claude$ diff --git a/.Rprofile b/.Rprofile new file mode 100644 index 0000000..81b960f --- /dev/null +++ b/.Rprofile @@ -0,0 +1 @@ +source("renv/activate.R") diff --git a/.claude/AI.md b/.claude/AI.md new file mode 100644 index 0000000..cc6aa5b --- /dev/null +++ b/.claude/AI.md @@ -0,0 +1,250 @@ +# MockData - AI Development Guidelines + +## R package development with pkgdown + Quarto + renv + +### Context: Cutting-edge stack (2024-2025) + +This project uses a relatively new combination: +- **pkgdown** for R package documentation sites +- **Quarto .qmd vignettes** (replacing traditional .Rmd) +- **renv** for reproducible dependency management +- **GitHub Actions** for automated deployment + +This stack is newer than most online resources, so documented patterns are limited. + +### Critical: renv snapshot configuration + +**Problem**: Default `renv::snapshot()` only captures packages used in `R/` code, missing: +- DESCRIPTION Suggests field (pkgdown, quarto, devtools, roxygen2) +- Packages used only in vignettes (dplyr, stringr, lubridate) + +**Solution**: Configure renv to capture ALL dependencies + +```r +# Set snapshot type to "all" (persists in project settings) +renv::settings$snapshot.type("all") + +# Snapshot with all DESCRIPTION dependencies +renv::snapshot() +``` + +**Result**: renv.lock now contains ~124 packages instead of just renv itself. + +### Simplified GitHub Actions workflow + +With complete renv.lock, the workflow is straightforward: + +```yaml +- name: Install renv + run: Rscript -e "install.packages('renv')" + +- name: Restore R packages with renv + run: Rscript -e "renv::restore(prompt = FALSE)" + +- name: Build and install MockData package + run: | + Rscript -e "roxygen2::roxygenize()" + R CMD INSTALL . + +- name: Build pkgdown site + run: Rscript -e 'pkgdown::build_site(new_process = FALSE)' +``` + +**No manual package installations needed.** +**No R_LIBS_USER path manipulation needed.** + +### When to update renv.lock + +```r +# After adding packages to DESCRIPTION +renv::snapshot() + +# After removing packages from DESCRIPTION +renv::snapshot() + +# To check what changed +renv::status() +``` + +### Known issues with pkgdown + Quarto + +From official pkgdown documentation (as of 2025): +- Callouts not currently supported in Quarto vignettes +- Only HTML vignettes work (requires `minimal: true` in Quarto format) +- External files in vignettes/ may not be copied during rendering +- Mermaid diagrams require custom CSS instead of quarto themes + +### Debugging tips + +If vignettes fail to render: +```r +# Enable Quarto debugging +options(quarto.log.debug = TRUE) +pkgdown::build_site() +``` + +Check that all vignette dependencies are in DESCRIPTION Suggests and renv.lock. + +### Debugging GitHub Actions failures: Lessons learned (2025-01-07) + +**Context**: 10+ hour debugging session to fix "System command 'quarto' failed" error in GitHub Actions. + +#### Start with minimal examples and successful patterns + +**DON'T**: Try to debug complex failures in GitHub Actions directly +**DO**: Build from working examples (chmsflow, popcorn-data) and test locally first + +**Minimal working workflow pattern**: + +```yaml +name: pkgdown + +on: + push: + branches: [main] # Don't include feature branches - causes duplicate runs with PRs + pull_request: + branches: [main] + workflow_dispatch: + +permissions: + contents: write + +jobs: + pkgdown: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v4 + - uses: r-lib/actions/setup-pandoc@v2 + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - name: Install Quarto + uses: quarto-dev/quarto-actions/setup@v2 + + - name: Install roxygen2 + run: Rscript -e "install.packages('roxygen2')" + + - name: Generate documentation + run: Rscript -e "roxygen2::roxygenize()" + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::pkgdown, local::. + needs: website + + # Debug step - render single vignette to isolate failures + - name: Test render single vignette + run: quarto render vignettes/getting-started.qmd --to html + continue-on-error: true + + - name: Build pkgdown site + run: | + options(rlib_message_verbosity = "verbose") + pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE, quiet = FALSE) + shell: Rscript {0} + + - name: Deploy to GitHub Pages + if: github.event_name != 'pull_request' + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: docs + branch: gh-pages + target-folder: . + clean: false +``` + +#### Critical debugging principles + +1. **Make errors visible** + - Set `quiet = FALSE` in `build_site_github_pages()` + - Add `continue-on-error: true` test steps to see actual failures + - Use `options(rlib_message_verbosity = "verbose")` + +2. **Test incrementally** + - Render one vignette at a time to isolate failures + - Test locally first: `quarto render vignettes/example.qmd --to html` + - Compare with working repos (chmsflow, popcorn-data) + +3. **Environment differences matter** + - **Locales**: `en_CA` works on macOS but NOT on Ubuntu GitHub Actions + - **Solution**: Use `en_US.UTF-8` for cross-platform compatibility + - **Example**: `lubridate::parse_date_time(..., locale = "en_US.UTF-8")` + +4. **Avoid duplicate workflow runs** + - **DON'T**: `push: branches: [main, feature-branch]` + - **DO**: `push: branches: [main]` + - **Why**: PRs already trigger on `pull_request` event + +5. **Use r-lib actions for dependency management** + - Prefer `r-lib/actions/setup-r-dependencies@v2` over manual renv + - Let `setup-r-dependencies` handle dependency installation + - **Always generate documentation first** with `roxygen2::roxygenize()` + +#### Common pitfalls + +1. **Generic error messages**: "System command 'quarto' failed" tells you nothing + - **Fix**: Add `quiet = FALSE` to see actual errors + +2. **Locale issues**: Hardcoded locales fail in CI/CD + - **Fix**: Use `en_US.UTF-8` instead of `en_CA` + +3. **Missing documentation**: pkgdown can't find topics if man/ files don't exist + - **Fix**: Run `roxygen2::roxygenize()` before building site + +4. **Vignette dependencies**: Packages used only in vignettes must be in DESCRIPTION + - **Fix**: Add to Suggests field, then `renv::snapshot()` + +#### Quick diagnostic checklist + +When GitHub Actions fails: + +- [ ] Test locally: `pkgdown::build_site()` +- [ ] Render vignettes individually: `quarto render vignettes/example.qmd --to html` +- [ ] Check for hardcoded locales (use `en_US.UTF-8`) +- [ ] Verify all vignette packages in DESCRIPTION Suggests +- [ ] Add `quiet = FALSE` to see actual error messages +- [ ] Compare workflow with working repos (chmsflow) +- [ ] Check for duplicate triggers (push + pull_request) + +#### GitHub Pages deployment tips + +**Start early**: Set up GitHub Pages deployment from the beginning, not as an afterthought. + +**Multi-branch deployment pattern**: + +```yaml +- name: Determine deployment path + id: deploy-path + run: | + if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then + echo "target_path=." >> $GITHUB_OUTPUT + elif [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then + echo "target_path=dev" >> $GITHUB_OUTPUT + else + echo "target_path=preview/${{ github.ref_name }}" >> $GITHUB_OUTPUT + fi + +- name: Deploy to GitHub Pages + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: docs + branch: gh-pages + target-folder: ${{ steps.deploy-path.outputs.target_path }} + clean: false +``` + +**Result**: +- `main` → https://yoursite.github.io/repo/ +- `dev` → https://yoursite.github.io/repo/dev/ +- Other branches → https://yoursite.github.io/repo/preview/branch-name/ + +### References + +- [pkgdown Quarto vignettes documentation](https://pkgdown.r-lib.org/articles/quarto.html) +- [renv CI/CD guide](https://rstudio.github.io/renv/articles/ci.html) +- [Quarto with renv discussion](https://github.com/quarto-dev/quarto-cli/discussions/9150) +- [r-lib/actions GitHub repository](https://github.com/r-lib/actions) diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml new file mode 100644 index 0000000..8d51ed8 --- /dev/null +++ b/.github/workflows/pkgdown.yaml @@ -0,0 +1,75 @@ +on: + push: + branches: [main] + pull_request: + branches: [main] + release: + types: [published] + workflow_dispatch: + +name: pkgdown + +permissions: + contents: write + +jobs: + pkgdown: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + + steps: + - uses: actions/checkout@v4 + + - uses: r-lib/actions/setup-pandoc@v2 + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - name: Install Quarto + uses: quarto-dev/quarto-actions/setup@v2 + + - name: Install roxygen2 + run: Rscript -e "install.packages('roxygen2')" + + - name: Generate documentation + run: Rscript -e "roxygen2::roxygenize()" + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::pkgdown, local::. + needs: website + + - name: Test render single vignette + run: quarto render vignettes/getting-started.qmd --to html + continue-on-error: true + + - name: Build pkgdown site + run: | + options(rlib_message_verbosity = "verbose") + pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE, quiet = FALSE) + shell: Rscript {0} + + - name: Determine deployment path + id: deploy-path + run: | + if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then + echo "target_path=." >> $GITHUB_OUTPUT + echo "Deploying to root (main branch)" + elif [[ "${{ github.ref }}" == "refs/heads/create-date-var" ]]; then + echo "target_path=dev" >> $GITHUB_OUTPUT + echo "Deploying to /dev (create-date-var branch)" + else + echo "target_path=preview/${{ github.ref_name }}" >> $GITHUB_OUTPUT + echo "Deploying to /preview/${{ github.ref_name }}" + fi + + - name: Deploy to GitHub Pages + if: github.event_name != 'pull_request' + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: docs + branch: gh-pages + target-folder: ${{ steps.deploy-path.outputs.target_path }} + clean: false diff --git a/.gitignore b/.gitignore index 70e42a1..1256c72 100644 --- a/.gitignore +++ b/.gitignore @@ -5,12 +5,14 @@ .Rhistory .RData .Ruserdata +.Renviron # macOS .DS_Store # Generated documentation man/*.Rd +docs/ # Quarto/HTML output Generate_mock_data.html diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0b00c29..32805d0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -131,6 +131,52 @@ covr::package_coverage() - If adding new test data, document its purpose - Keep test data small and focused +### Building Documentation + +#### Prerequisites for documentation builds + +1. **Install Quarto**: Download from https://quarto.org/docs/get-started/ or use Homebrew: +```bash +brew install quarto +``` + +2. **Ensure pkgdown and roxygen2 are available**: +```r +# These are in Suggests, install if needed +renv::install(c("pkgdown", "roxygen2")) +``` + +3. **Configure PATH for IDE users** (Positron/RStudio): + +If you encounter "System command 'quarto' failed" errors, add Quarto to your PATH in `~/.Renviron`: +``` +PATH="/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin:${PATH}" +``` + +Then restart your R session. + +#### Building the pkgdown site + +```r +# 1. Regenerate .Rd files from roxygen comments (after editing R documentation) +roxygen2::roxygenize() + +# 2. Build the pkgdown site +pkgdown::build_site() + +# 3. Preview locally +browseURL("docs/index.html") +``` + +**Important**: Always run `roxygen2::roxygenize()` before `pkgdown::build_site()` if you've modified roxygen documentation in R files. + +#### Rendering individual vignettes + +```bash +# From project root +quarto render vignettes/getting-started.qmd --to html +``` + ### Validation Tools Before submitting, run the validation tools: diff --git a/DESCRIPTION b/DESCRIPTION index cc65a2a..b8d3b3e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,8 +2,8 @@ Package: MockData Title: Generate Mock Data from Recodeflow Metadata Version: 0.2.0 Authors@R: c( - person("Juan", "Li", role = c("aut", "cre"), email = "juan.li@oahpp.ca"), - person("Doug", "Manuel", role = "aut", email = "dmanuel@ohri.ca") + person("Juan", "Li", role = c("aut", "cre"), email = "juli@ohri.ca"), + person("recodeflow contributors", role = "ctb") ) Description: Generates mock testing data from recodeflow metadata (variables.csv and variable-details.csv). Supports categorical and continuous variables @@ -11,6 +11,8 @@ Description: Generates mock testing data from recodeflow metadata (variables.csv across CHMS, CCHS, and other recodeflow projects. Uses recodeflow-standard notation for parsing variable specifications and range notation. License: MIT + file LICENSE +URL: https://big-life-lab.github.io/MockData/, https://github.com/Big-Life-Lab/MockData +BugReports: https://github.com/Big-Life-Lab/MockData/issues Encoding: UTF-8 Roxygen: list(markdown = TRUE) RoxygenNote: 7.3.3 @@ -23,4 +25,9 @@ Suggests: testthat (>= 3.0.0), readr, dplyr, - stringr + stringr, + lubridate, + quarto, + devtools, + pkgdown, + roxygen2 diff --git a/DOCUMENTATION_FINAL_REVIEW.md b/DOCUMENTATION_FINAL_REVIEW.md new file mode 100644 index 0000000..5cca31d --- /dev/null +++ b/DOCUMENTATION_FINAL_REVIEW.md @@ -0,0 +1,168 @@ +# Documentation Final Review - Session Notes + +**Date:** 2025-11-05 +**Status:** Ready for pkgdown rebuild and final review + +## Completed in this session + +### 1. Vignette standardization (Phases 1-4) + +✅ **Phase 1:** Added "About this vignette" callouts to all 7 vignettes that were missing them +- getting-started.qmd +- tutorial-config-files.qmd +- tutorial-dates.qmd +- dates.qmd +- advanced-topics.qmd +- reference-config.qmd +- missing-data-tutorial-outline.qmd + +✅ **Phase 2:** Standardized "Next steps" section formatting +- dates.qmd: Changed "## See also" → "## Next steps" +- cchs-example.qmd: Changed bold text → level 2 heading +- chms-example.qmd: Changed bold text → level 2 heading + +✅ **Phase 3:** Fixed terminology consistency +- demport-example.qmd: Fixed CCHS acronym pattern to "Canadian Community Health Survey (CCHS)" + +✅ **Phase 4:** Added "What you learned" section +- tutorial-dates.qmd: Added comprehensive 6-point summary + +✅ **Phase 5:** Blank lines before lists (already complete - no changes needed) + +### 2. README enhancements + +✅ Added "The recodeflow universe" section explaining: +- Metadata-driven philosophy +- Design principles +- Related packages (cchsflow, chmsflow, recodeflow) + +✅ Added "Data sources and acknowledgements" section: +- Statistics Canada credit +- Open License reference +- Clarification that package generates mock data only + +### 3. Author attribution updates + +✅ **All vignettes:** Updated author field to "Juan Li and the recodeflow contributors" + +✅ **DESCRIPTION file:** Modified Authors@R to show: +- Juan Li (aut, cre) +- recodeflow contributors (ctb) +- Removed Doug Manuel per request + +### 4. Function documentation improvements + +✅ Expanded 5 short function titles from 3-8 words to 13-15 words: + +| Function | Old title (words) | New title (words) | +|----------|-------------------|-------------------| +| `read_mock_data_config()` | 4 | 14 | +| `validate_mock_data_config()` | 3 | 13 | +| `read_mock_data_config_details()` | 5 | 14 | +| `validate_mock_data_config_details()` | 4 | 14 | +| `import_from_recodeflow()` | 8 | 15 | + +**Files modified:** +- R/read_mock_data_config.R (2 @title tags) +- R/read_mock_data_config_details.R (2 @title tags) +- R/import_from_recodeflow.R (1 @title tag) + +## Next steps on the other computer + +### 1. Rebuild pkgdown site + +```r +# In R console +pkgdown::build_site() +``` + +**Check these items:** +- Footer shows "Developed by Juan Li and recodeflow contributors" +- Reference page shows expanded function descriptions (13-15 words each) +- All vignettes have "About this vignette" callouts +- README shows recodeflow universe and Statistics Canada sections + +### 2. Final review checklist + +- [ ] All vignettes render correctly +- [ ] Footer attribution correct on all pages +- [ ] Reference page function descriptions are clear +- [ ] README sections display properly +- [ ] All links work correctly +- [ ] No regressions in code examples + +### 3. Files changed in this session + +**Documentation:** +- README.md +- vignettes/getting-started.qmd +- vignettes/tutorial-config-files.qmd +- vignettes/tutorial-dates.qmd +- vignettes/dates.qmd +- vignettes/advanced-topics.qmd +- vignettes/reference-config.qmd +- vignettes/missing-data-tutorial-outline.qmd +- vignettes/cchs-example.qmd +- vignettes/chms-example.qmd +- vignettes/demport-example.qmd (already had callout, just fixed CCHS acronym) + +**Package metadata:** +- DESCRIPTION (Authors@R field) + +**R documentation:** +- R/read_mock_data_config.R +- R/read_mock_data_config_details.R +- R/import_from_recodeflow.R + +### 4. Verification commands + +```bash +# Verify all vignettes render +for file in vignettes/*.qmd; do + echo "=== Rendering $file ===" + quarto render "$file" --to html +done + +# Check for any broken links +# (After pkgdown build) +``` + +## Notes for review + +### Style guide compliance +- All level 2+ headings use sentence case ✅ +- Canadian spelling throughout ✅ +- Consistent "About this vignette" callout structure ✅ +- Consistent "Next steps" section formatting ✅ + +### No regressions introduced +- No cat(), print(), or echo statements added ✅ +- All code examples remain executable ✅ +- No changes to core generation functions ✅ +- Only additive changes (callouts, sections) and formatting (headings) ✅ + +### Outstanding items +None - documentation is ready for final review and deployment. + +## Commits made in this session + +### Commit 1: `9186757` - Standardize documentation and finalize vignette improvements +**34 files changed, 2624 insertions(+), 178 deletions(-)** + +Main changes: +- All vignette updates (11 files) +- README.md enhancements (recodeflow universe, StatsCan acknowledgements) +- DESCRIPTION author updates (Juan Li + recodeflow contributors) +- Function documentation expansions (5 @title tags in 3 R files) +- DOCUMENTATION_FINAL_REVIEW.md (this file) + +### Commit 2: `f13c91c` - Improve pkgdown reference page section descriptions +**2 files changed, 20 insertions(+), 11 deletions(-)** + +Main changes: +- _pkgdown.yml: Expanded all section descriptions to full sentences +- .Rbuildignore: Cleaned up to exclude PR review notes and session docs + +**Both commits pushed to `origin/create-date-var`** + +All documentation work is now complete and ready for pkgdown rebuild on the other computer. diff --git a/NAMESPACE b/NAMESPACE index 33314e5..985b725 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,10 +1,34 @@ # Generated by roxygen2: do not edit by hand +export(apply_missing_codes) +export(apply_rtype_defaults) export(create_cat_var) export(create_con_var) +export(create_date_var) +export(create_mock_data) +export(create_survival_dates) +export(extract_distribution_params) +export(extract_proportions) +export(generate_garbage_values) export(get_cycle_variables) +export(get_enabled_variables) export(get_raw_variables) +export(get_variable_details) +export(get_variables_by_role) +export(has_garbage) +export(import_from_recodeflow) +export(make_garbage) export(parse_range_notation) export(parse_variable_start) +export(read_mock_data_config) +export(read_mock_data_config_details) +export(sample_with_proportions) +export(validate_mock_data_config) +export(validate_mock_data_config_details) +importFrom(stats,rexp) importFrom(stats,rnorm) importFrom(stats,runif) +importFrom(stats,setNames) +importFrom(utils,head) +importFrom(utils,read.csv) +importFrom(utils,write.csv) diff --git a/NEWS.md b/NEWS.md index d93f4aa..9dbb581 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,94 +1,140 @@ -# MockData 0.2.0 (Development) +# MockData 0.2.0 -## Major Changes +## Major changes -### New Features +### New configuration format (v0.2) -* **Full recodeflow schema notation support** (#package-repatriation) - - Added `parse_variable_start()` to handle all variableStart notation formats - - Added `parse_range_notation()` to parse recStart/recFrom value ranges - - Support for database-prefixed format: `cycle1::var1, cycle2::var2` - - Support for bracket format: `[varname]` - - Support for mixed format: `cycle1::var1, [var2]` (DEFAULT pattern) - - Support for range notation: `[7,9]`, `[18.5,25)`, `(0,100]`, `[30,inf)` - - Support for special values: `copy`, `else`, `NA::a` +- **Breaking change**: New configuration schema with `uid`/`uid_detail` system +- Replaces v0.1 `cat`/`catLabel` columns with unified metadata structure +- Adds `rType` field for explicit R type coercion (factor, integer, double, Date) +- Adds `proportion` field for direct distribution control +- Adds date-specific fields: `date_start`, `date_end`, `distribution` -* **Helper functions for metadata extraction** - - `get_cycle_variables()`: Filter metadata by cycle - - `get_raw_variables()`: Get unique raw variables to generate - - `get_variable_details_for_raw()`: Retrieve category specifications - - `get_variable_categories()`: Extract valid category codes +**Backward compatibility**: v0.1 format still supported via dual interface. Both formats work side-by-side. -* **Three comprehensive vignettes** - - CCHS example workflow - - CHMS example workflow - - DemPoRT example workflow +### Date variable generation -### Package Infrastructure +- New `create_date_var()` function for date variables +- Multiple distribution options: uniform, gompertz, exponential +- Support for survival analysis patterns +- SAS date format parsing +- Three source formats: analysis (R Date), csv (ISO strings), sas (numeric) -* Converted to proper R package structure - - Added DESCRIPTION, NAMESPACE, LICENSE - - Generated documentation for all exported functions - - Added 224 comprehensive tests (100% passing) - - Created proper package-level documentation +### Survival analysis support -* **Reorganized data files** - - `inst/extdata/`: Example metadata worksheets by survey (CCHS, CHMS, DemPoRT) - - `inst/examples/`: Generated mock data examples - - `inst/metadata/`: Recodeflow schema documentation +- New `create_survival_dates()` function for cohort studies +- Generates paired entry and event dates with guaranteed temporal ordering +- Supports censoring and multiple event distributions +- **Note**: Must be called manually (not compatible with `create_mock_data()` batch generation) -* **Validation tools** moved to `mockdata-tools/` at package root - - `validate-metadata.R`: Check metadata quality - - `test-all-cycles.R`: Test coverage across cycles - - `create-comparison.R`: Compare generation approaches +### Data quality testing (garbage data) -### Refactoring +- New `prop_invalid` parameter across all generators +- Generates intentionally invalid data for testing validation pipelines +- Supports garbage types: `corrupt_future`, `corrupt_past`, `corrupt_range` +- Critical for testing data cleaning workflows -* Split generator functions into dedicated files - - `create_cat_var()` → `R/create_cat_var.R` - - `create_con_var()` → `R/create_con_var.R` - - Removed `R/mockdata-generators.R` - - **Original logic preserved** - only reorganized for maintainability +### Batch generation -* Standardized file naming conventions - - Consistent use of underscores in inst/extdata/ - - Removed spaces from filenames +- New `create_mock_data()` function for batch generation from CSV configuration +- New `read_mock_data_config()` and `read_mock_data_config_details()` readers +- Processes multiple variables in single call +- Fallback mode when details not provided -### Terminology +### Type coercion -* Deprecated "PHIAT-YLL" terminology in favour of "CCHS" - - PHIAT-YLL is a project using CCHS data, not a distinct survey type - - Renamed files: `phiatyll_variables.csv` → `cchs_variables.csv` - - Updated all documentation and examples +- Explicit `rType` field controls R type conversion +- Proper factor handling with levels +- Integer vs double distinction for age/count variables +- Makes generated data match real survey data types -### Testing & Validation +## New functions -* 224 tests covering parsers, helpers, and generators -* 99.4% coverage across all CHMS cycles -* Battle-tested on Rafidul's chmsflow repository +- `create_date_var()` - Date variable generation +- `create_survival_dates()` - Paired survival dates with temporal ordering +- `create_mock_data()` - Batch generation orchestrator +- `read_mock_data_config()` - Configuration file reader +- `read_mock_data_config_details()` - Details file reader +- `determine_proportions()` - Unified proportion determination +- `import_from_recodeflow()` - Helper to adapt recodeflow metadata -## Bug Fixes +## Function updates -* Fixed stats package imports (rnorm, runif) to eliminate R CMD check NOTEs -* Removed unused stringr dependency from Imports (moved to Suggests) +- `create_cat_var()`: Add rType support, proportion parameter, uid-based filtering +- `create_con_var()`: Add rType support, proportion parameter for missing codes +- Consolidate helpers in `mockdata_helpers.R`, `config_helpers.R`, `scalar_helpers.R` ## Documentation -* Updated README.md with current package structure -* All vignettes use proper `system.file()` paths -* Added package-level documentation (`?MockData`) -* Consistent authorship attribution across all vignettes +### New vignettes ---- +- `getting-started.qmd` - Comprehensive introduction +- `tutorial-dates.qmd` - Date configuration patterns +- `tutorial-config-files.qmd` - Batch generation workflow +- `reference-config.qmd` - Complete v0.2 schema documentation +- `advanced-topics.qmd` - Technical implementation details + +### Updated vignettes + +- `cchs-example.qmd` - Modernized to v0.2 with inline R +- `chms-example.qmd` - Modernized to v0.2 with inline R +- `demport-example.qmd` - Modernized to v0.2 with inline R +- `dates.qmd` - Aligned with v0.2 date configuration +- All vignettes use modern inline R approach + +### Metadata updates + +- `mock_data_schema.yaml` - LinkML-style schema documentation (1,222 lines) +- `metadata_registry.yaml` - Document v0.2 format +- Renamed CCHS/CHMS sample files for consistency +- Updated DemPoRT metadata with v0.2 format +- Removed deprecated ICES metadata (moved to recodeflow) + +## Package infrastructure + +- Added `_pkgdown.yml` for documentation website +- Updated NAMESPACE with new imports (stats::rexp, utils::read.csv, etc.) +- Updated DESCRIPTION with new dependencies + +## Breaking changes + +**Configuration format changes:** +- Variable details now require `uid` and `uid_detail` columns +- `rType` field required for proper type coercion +- New date fields: `date_start`, `date_end`, `distribution` -# MockData 0.1.0 (Initial Development) +**Migration path:** +- v0.1 format still works (backward compatibility maintained) +- Dual interface auto-detects format based on parameters +- v0.2 recommended for new projects -## Initial Features +**Deprecation timeline:** +- v0.2.0 (current): Both formats supported +- v0.3.0 (planned 2026-Q1): Deprecation warnings for v0.1 +- v0.4.0 (planned 2026-Q3): v0.1 format removed + +**File changes:** +- Renamed `R/mockdata-helpers.R` → `R/mockdata_helpers.R` +- ICES metadata removed (maintained in recodeflow package) + +## Bug fixes + +- Fixed 'else' handling in `recEnd` rules (issue #5) +- Fixed create_survival_dates() compatibility with create_mock_data() +- Fixed Roxygen documentation link syntax errors + +## Known issues + +- Survival variable type must be generated manually with `create_survival_dates()` +- Cannot be used in `create_mock_data()` batch generation (requires paired variables) + +## Supersedes + +- PR #5 (issue-5-fix-else): 'else' handling fix included +- Incorporates CHMS updates from documentation-restructure branch + +--- -* Basic categorical variable generation (`create_cat_var()`) -* Basic continuous variable generation (`create_con_var()`) -* Support for tagged NA values -* Reproducible generation with seeds -* Example data from DemPoRT project +# MockData 0.1.0 -**Note**: Version 0.1.0 was Juan Li's original development version before package formalization. +Initial release with basic categorical and continuous variable generation. diff --git a/R/MockData-package.R b/R/MockData-package.R index ea42a93..3ca221e 100644 --- a/R/MockData-package.R +++ b/R/MockData-package.R @@ -2,6 +2,7 @@ "_PACKAGE" ## usethis namespace: start -#' @importFrom stats rnorm runif +#' @importFrom stats rnorm runif rexp setNames +#' @importFrom utils head read.csv write.csv ## usethis namespace: end NULL diff --git a/R/config_helpers.R b/R/config_helpers.R new file mode 100644 index 0000000..48b8985 --- /dev/null +++ b/R/config_helpers.R @@ -0,0 +1,142 @@ +#' Get variables by role +#' +#' @description +#' Filters a MockData configuration to return only variables matching one or more roles. +#' The role column can contain comma-separated values (e.g., "predictor, outcome"), +#' so this function uses pattern matching to find all matching variables. +#' +#' @param config Data frame. Configuration from read_mock_data_config(). +#' @param roles Character vector. Role(s) to filter for (e.g., c("enabled", "predictor")). +#' +#' @return Data frame with subset of config rows matching any of the specified roles. +#' +#' @details +#' This function handles comma-separated role values by using grepl() pattern matching. +#' A variable matches if its role column contains any of the specified role values. +#' +#' Common role values: +#' - enabled: Variables to generate in mock data +#' - predictor: Predictor variables for analysis +#' - outcome: Outcome variables +#' - confounder: Confounding variables +#' - exposure: Exposure variables +#' - intermediate: Intermediate/derived variables +#' - table1_master, table1_sub: Table 1 display variables +#' - metadata: Study metadata (dates, identifiers) +#' +#' @examples +#' \dontrun{ +#' # Load configuration +#' config <- read_mock_data_config("inst/extdata/mock_data_config.csv") +#' +#' # Get all predictor variables +#' predictors <- get_variables_by_role(config, "predictor") +#' +#' # Get variables with multiple roles +#' outcomes <- get_variables_by_role(config, c("outcome", "exposure")) +#' +#' # Get Table 1 variables +#' table1_vars <- get_variables_by_role(config, c("table1_master", "table1_sub")) +#' } +#' +#' @family configuration +#' @export +get_variables_by_role <- function(config, roles) { + + # Input validation + if (!is.data.frame(config)) { + stop("config must be a data frame") + } + + if (!"role" %in% names(config)) { + stop("config must have a 'role' column") + } + + if (!is.character(roles) || length(roles) == 0) { + stop("roles must be a non-empty character vector") + } + + # Build pattern to match any of the specified roles + # Use word boundaries to avoid partial matches (e.g., "table1" shouldn't match "table1_master") + pattern <- paste0("\\b(", paste(roles, collapse = "|"), ")\\b") + + # Filter using grepl (handles comma-separated role values) + matches <- grepl(pattern, config$role, ignore.case = FALSE) + + result <- config[matches, ] + + # Return empty data frame with same structure if no matches + if (nrow(result) == 0) { + warning("No variables found with role(s): ", paste(roles, collapse = ", ")) + } + + return(result) +} + + +#' Get enabled variables +#' +#' @description +#' Convenience function to get all variables marked with role "enabled", +#' excluding derived variables by default. Derived variables should be +#' calculated after generating raw mock data, not generated directly. +#' +#' @param config Data frame. Configuration from read_mock_data_config(). +#' @param exclude_derived Logical. If TRUE (default), exclude variables with +#' role "derived". Derived variables are calculated from raw variables and +#' should not be generated as mock data. +#' +#' @return Data frame with subset of config rows where role contains "enabled" +#' but not "derived" (unless exclude_derived = FALSE). +#' +#' @details +#' The "enabled" role indicates variables that should be included when generating +#' mock data. However, variables with role "derived" are calculated from other +#' variables and should NOT be generated directly. +#' +#' **Derived variables**: Variables calculated from raw data (e.g., BMI from +#' height and weight, pack-years from smoking variables). These have +#' `role = "derived,enabled"` in metadata and `variableStart` starting with +#' "DerivedVar::". +#' +#' **Default behavior**: Excludes derived variables to prevent generating +#' variables that should be calculated from raw data. +#' +#' @examples +#' \dontrun{ +#' # Load configuration +#' config <- read_mock_data_config("inst/extdata/mock_data_config.csv") +#' +#' # Get only enabled RAW variables (excludes derived, default) +#' enabled_vars <- get_enabled_variables(config) +#' +#' # Include derived variables (not recommended) +#' all_enabled <- get_enabled_variables(config, exclude_derived = FALSE) +#' +#' # View enabled variable names +#' enabled_vars$variable +#' } +#' +#' @family configuration +#' @export +get_enabled_variables <- function(config, exclude_derived = TRUE) { + # Get all enabled variables + enabled_vars <- get_variables_by_role(config, "enabled") + + # Exclude derived variables if requested (default) + if (exclude_derived) { + # Check if role column contains "derived" + is_derived <- grepl("\\bderived\\b", enabled_vars$role, ignore.case = FALSE) + + # Filter out derived variables + enabled_vars <- enabled_vars[!is_derived, ] + + # Return empty data frame with same structure if no matches + if (nrow(enabled_vars) == 0) { + warning("No enabled non-derived variables found. ", + "All enabled variables are derived variables.") + } + } + + return(enabled_vars) +} diff --git a/R/create_cat_var.R b/R/create_cat_var.R index 1147f99..2b93965 100644 --- a/R/create_cat_var.R +++ b/R/create_cat_var.R @@ -7,9 +7,21 @@ #' @param variable_details data.frame. Variable details metadata #' @param variables data.frame. Variables metadata (optional, for validation) #' @param length integer. The desired length of the mock data vector -#' @param df_mock data.frame. The current mock data (to check if variable already exists) +#' @param df_mock data.frame. Existing mock data (to check if variable already exists) +#' @param proportions Proportions for category generation. Can be: +#' \itemize{ +#' \item \strong{NULL} (default): Uses uniform distribution across all categories +#' \item \strong{Named list}: Maps category codes to proportions (e.g., \code{list("1" = 0.25, "2" = 0.75)}) +#' \item \strong{Numeric vector}: Proportions in same order as categories appear in variable_details +#' } +#' If provided, overrides any proportion column in variable_details. +#' Proportions will be normalized to sum to 1. +#' @param seed integer. Random seed for reproducibility. If NULL, uses global seed. #' @param prop_NA numeric. Optional. Proportion of NA values (0 to 1). If NULL, no NAs introduced. -#' @param seed integer. Random seed for reproducibility. Default is 100. +#' @param prop_invalid numeric. Optional. Proportion of invalid out-of-range category codes (0 to 1). If NULL, no invalid values generated. +#' @param var_row data.frame. Single row from mock_data_config (for batch generation) +#' @param details_subset data.frame. Rows from mock_data_config_details (for batch generation) +#' @param n integer. Number of observations (for batch generation) #' #' @return data.frame with one column (the new categorical variable), or NULL if: #' - Variable details not found @@ -17,116 +29,351 @@ #' - No categories found #' #' @details -#' This function uses: -#' - `get_variable_details_for_raw()` to find variable specifications -#' - `get_variable_categories()` to extract category values +#' The function determines proportions in this priority order: +#' \enumerate{ +#' \item Explicit `proportions` parameter (if provided) +#' \item `proportion` column in variable_details (if present) +#' \item Uniform distribution (default fallback) +#' } +#' +#' Uses `determine_proportions()` helper to handle proportion logic cleanly. +#' Generates values using vectorized `sample()` for efficiency. +#' +#' **Type coercion (rType):** +#' If the metadata contains an `rType` column, values will be coerced to the specified R type: +#' - `"factor"`: Converts to factor with levels from category codes (default for categorical) +#' - `"character"`: Converts to character vector +#' - `"integer"`: Converts to integer (for numeric category codes) +#' - `"logical"`: Converts to logical (for TRUE/FALSE categories) +#' - Other types are passed through without coercion #' -#' The function handles: -#' - Simple categories: "1", "2", "3" -#' - Range notation: "[7,9]" → expands to c("7","8","9") -#' - NA codes: Categories where recEnd contains "NA" -#' - Special codes: "copy", "else", "NA::a" +#' This allows categorical variables to be returned as factors with proper levels, +#' or as other types appropriate to the data. If `rType` is not specified, defaults to character. #' #' @examples #' \dontrun{ -#' # Create a categorical variable -#' mock_alcohol_past_year <- create_cat_var( -#' var_raw = "alc_11", +#' # Uniform distribution (no proportions specified) +#' result <- create_cat_var( +#' var_raw = "smoking", #' cycle = "cycle1", #' variable_details = variable_details, #' length = 1000 #' ) #' -#' # Create with NA values -#' mock_alcohol <- create_cat_var( -#' var_raw = "alc_11", +#' # Custom proportions with named list (recommended) +#' result <- create_cat_var( +#' var_raw = "smoking", #' cycle = "cycle1", #' variable_details = variable_details, +#' proportions = list( +#' "1" = 0.25, # Daily smoker +#' "2" = 0.50, # Occasional smoker +#' "3" = 0.20, # Never smoked +#' "996" = 0.05 # Missing +#' ), #' length = 1000, -#' df_mock = existing_mock_data, -#' prop_NA = 0.05 +#' seed = 123 +#' ) +#' +#' # Custom proportions with numeric vector +#' result <- create_cat_var( +#' var_raw = "smoking", +#' cycle = "cycle1", +#' variable_details = variable_details, +#' proportions = c(0.25, 0.50, 0.20, 0.05), +#' length = 1000, +#' seed = 123 +#' ) +#' +#' # With data quality issues +#' result <- create_cat_var( +#' var_raw = "smoking", +#' cycle = "cycle1", +#' variable_details = variable_details, +#' proportions = list("1" = 0.3, "2" = 0.6, "3" = 0.1), +#' length = 1000, +#' prop_NA = 0.05, +#' prop_invalid = 0.02, +#' seed = 123 #' ) #' } #' +#' @family generators #' @export -create_cat_var <- function(var_raw, cycle, variable_details, variables = NULL, - length, df_mock, prop_NA = NULL, seed = 100) { +create_cat_var <- function(var_row = NULL, details_subset = NULL, n = NULL, + seed = NULL, df_mock = NULL, + # Scalar variable generation parameters + var_raw = NULL, cycle = NULL, variable_details = NULL, + variables = NULL, length = NULL, + proportions = NULL, prop_NA = NULL, prop_invalid = NULL) { - # Level 1: Get variable details for this raw variable + cycle - var_details <- get_variable_details_for_raw(var_raw, cycle, variable_details, variables) + # Auto-detect format based on parameters + use_v02 <- !is.null(var_row) && is.data.frame(var_row) && nrow(var_row) == 1 - if (nrow(var_details) == 0) { - # No variable details found for this raw variable in this cycle - return(NULL) - } + if (use_v02) { + # ========== v0.2 IMPLEMENTATION ========== + var_name <- var_row$variable - # Check if variable already exists in mock data - if (var_raw %in% names(df_mock)) { - # Variable already created, skip - return(NULL) - } + # Check if variable already exists in mock data + if (!is.null(df_mock) && var_name %in% names(df_mock)) { + return(NULL) + } - # Level 2: Extract categories (non-NA values) - labels <- get_variable_categories(var_details, include_na = FALSE) + # Set seed if provided + if (!is.null(seed)) set.seed(seed) - if (length(labels) == 0) { - # No valid categories found - return(NULL) - } + # FALLBACK MODE: Uniform distribution if details_subset is NULL + if (is.null(details_subset) || nrow(details_subset) == 0) { + # Generate simple 2-category variable with uniform distribution + values <- sample(c("1", "2"), size = n, replace = TRUE) - # Level 2: Extract NA codes (if prop_NA specified) - na_labels <- NULL - if (!is.null(prop_NA) && prop_NA > 0) { - na_labels <- get_variable_categories(var_details, include_na = TRUE) - - if (length(na_labels) == 0) { - # No NA codes found, but prop_NA requested - # Use regular labels with NA values instead - na_labels <- NULL - prop_NA <- NULL - warning(paste0( - "prop_NA requested for ", var_raw, " but no NA codes found in variable_details. ", - "Proceeding without NAs." - )) + col <- data.frame( + new = values, + stringsAsFactors = FALSE + ) + names(col)[1] <- var_name + return(col) + } + + # Extract proportions from details_subset + props <- extract_proportions(details_subset, variable_name = var_name) + + # Check if we have valid categories + if (length(props$categories) == 0) { + warning(paste0("No valid categories found for ", var_name)) + return(NULL) + } + + # STEP 1: Generate population (valid values only) + # Calculate number of valid observations (excluding missing) + n_valid <- floor(n * props$valid) + + # Generate category assignments based on category-specific proportions + valid_assignments <- sample_with_proportions( + categories = props$categories, + proportions = props$category_proportions, + n = n_valid, + seed = NULL # Already set globally if needed + ) + + # STEP 2: Apply missing codes + # Calculate number of each missing type + n_missing <- n - n_valid + + if (n_missing > 0 && length(props$missing) > 0) { + # Generate missing assignments + missing_assignments <- sample( + names(props$missing), + size = n_missing, + replace = TRUE, + prob = unlist(props$missing) + ) + + # Combine valid and missing assignments + all_assignments <- c(valid_assignments, missing_assignments) + + # Create map of missing categories to their codes + missing_map <- list() + for (miss_cat in names(props$missing)) { + miss_row <- details_subset[details_subset$recEnd == miss_cat, ] + if (nrow(miss_row) > 0) { + # Use recEnd itself if value is NA + code_value <- miss_row$value[1] + if (is.na(code_value)) { + code_value <- miss_cat # Use recEnd (e.g., "[7,9]") as the value + } + missing_map[[miss_cat]] <- code_value + } + } + + # Apply missing codes (replaces missing category names with actual codes) + values <- apply_missing_codes( + values = all_assignments, + category_assignments = all_assignments, + missing_code_map = missing_map + ) + } else { + # No missing codes needed + values <- valid_assignments + } + + # STEP 3: Apply garbage if specified + if (has_garbage(details_subset)) { + values <- make_garbage( + values = values, + details_subset = details_subset, + variable_type = "Categorical", + seed = NULL # Already set globally if needed + ) } - } - # Generate mock data - if (is.null(prop_NA) || is.null(na_labels)) { - # Simple case: no NA values - set.seed(seed) + # STEP 4: Apply rType coercion if specified + if ("rType" %in% names(details_subset)) { + r_type <- details_subset$rType[1] + if (!is.null(r_type) && !is.na(r_type)) { + values <- switch(r_type, + "factor" = { + # Extract category levels from details_subset + categories <- unique(details_subset$recEnd[!is.na(details_subset$recEnd)]) + factor(values, levels = categories) + }, + "character" = as.character(values), + "integer" = as.integer(values), + "logical" = as.logical(values), + values # No coercion for other types + ) + } + } + + # Return as data frame col <- data.frame( - new = sample(labels, length, replace = TRUE), + new = values, stringsAsFactors = FALSE ) + names(col)[1] <- var_name + return(col) } else { - # Case with NA values using NA codes - set.seed(seed) + # ========== SCALAR VARIABLE GENERATION ========== + + # Get variable details for this raw variable + cycle + var_details <- get_variable_details_for_raw(var_raw, cycle, variable_details, variables) + + if (nrow(var_details) == 0) { + # No variable details found for this raw variable in this cycle + return(NULL) + } + + # Check if variable already exists in mock data + if (!is.null(df_mock) && var_raw %in% names(df_mock)) { + # Variable already created, skip + return(NULL) + } + + # Extract categories (non-NA values) - do this once + labels <- get_variable_categories(var_details, include_na = FALSE) + + if (length(labels) == 0) { + # No valid categories found + return(NULL) + } + + # Determine proportions using helper function + probs <- determine_proportions(labels, proportions, var_details) + + # Extract NA codes (if prop_NA specified) + na_labels <- NULL + if (!is.null(prop_NA) && prop_NA > 0) { + na_labels <- get_variable_categories(var_details, include_na = TRUE) + + if (length(na_labels) == 0) { + # No NA codes found, but prop_NA requested + na_labels <- NULL + prop_NA <- NULL + warning(paste0( + "prop_NA requested for ", var_raw, " but no NA codes found in variable_details. ", + "Proceeding without NAs." + )) + } + } + + # Generate invalid codes (if prop_invalid specified) + invalid_labels <- NULL + if (!is.null(prop_invalid) && prop_invalid > 0) { + # Common invalid codes that are likely not in valid categories + all_invalid_candidates <- c("99", "999", "9999", "88", "888", "-1", "-9", "-99", "96", "97", "98") + + # Exclude any that are actually valid or NA codes + all_categories <- get_variable_categories(var_details, include_na = TRUE) + invalid_labels <- setdiff(all_invalid_candidates, all_categories) + + if (length(invalid_labels) == 0) { + # All common invalid codes are in metadata (unlikely) + # Generate synthetic invalid codes + max_code <- suppressWarnings(max(as.numeric(all_categories), na.rm = TRUE)) + if (!is.infinite(max_code) && !is.na(max_code)) { + invalid_labels <- as.character((max_code + 1):(max_code + 5)) + } else { + # Fallback: use clearly invalid text codes + invalid_labels <- c("INVALID", "ERROR", "XXX") + } + } + } + + # Set seed and generate mock data + if (!is.null(seed)) set.seed(seed) + n_obs <- length + + # Calculate counts for each value type + prop_na_actual <- if (!is.null(prop_NA) && !is.null(na_labels)) prop_NA else 0 + prop_invalid_actual <- if (!is.null(prop_invalid) && !is.null(invalid_labels)) prop_invalid else 0 + + # Ensure proportions don't exceed 1 + total_prop <- prop_na_actual + prop_invalid_actual + if (total_prop > 1) { + stop(paste0( + "prop_NA (", prop_NA, ") + prop_invalid (", prop_invalid, ") = ", + total_prop, " exceeds 1.0" + )) + } # Calculate counts - n_regular <- floor(length * (1 - prop_NA)) - n_na <- length - n_regular + n_na <- floor(n_obs * prop_na_actual) + n_invalid <- floor(n_obs * prop_invalid_actual) + n_regular <- n_obs - n_na - n_invalid + + # Generate regular values using determined proportions (vectorized) + vec_regular <- if (n_regular > 0) { + sample(labels, n_regular, replace = TRUE, prob = probs) + } else { + character(0) + } - # Sample regular values - vec_regular <- sample(labels, n_regular, replace = TRUE) + # Generate NA codes + vec_na <- if (n_na > 0) { + sample(na_labels, n_na, replace = TRUE) + } else { + character(0) + } - # Sample NA codes - vec_na <- sample(na_labels, n_na, replace = TRUE) + # Generate invalid codes + vec_invalid <- if (n_invalid > 0) { + sample(invalid_labels, n_invalid, replace = TRUE) + } else { + character(0) + } - # Combine and shuffle - vec_combined <- c(vec_regular, vec_na) - vec_shuffled <- sample(vec_combined) + # Combine and shuffle all values + vec_all <- c(vec_regular, vec_na, vec_invalid) + vec_shuffled <- sample(vec_all) # Ensure exact length + vec_shuffled <- vec_shuffled[1:n_obs] + + # Apply rType coercion if specified + if ("rType" %in% names(var_details)) { + r_type <- var_details$rType[1] + if (!is.null(r_type) && !is.na(r_type)) { + vec_shuffled <- switch(r_type, + "factor" = { + # Use labels as factor levels + factor(vec_shuffled, levels = labels) + }, + "character" = as.character(vec_shuffled), + "integer" = as.integer(vec_shuffled), + "logical" = as.logical(vec_shuffled), + vec_shuffled # No coercion for other types + ) + } + } + + # Return as data frame with one column col <- data.frame( - new = vec_shuffled[1:length], + new = vec_shuffled, stringsAsFactors = FALSE ) - } + names(col)[1] <- var_raw - # Set column name to raw variable name - names(col)[1] <- var_raw - - return(col) + return(col) + } } diff --git a/R/create_con_var.R b/R/create_con_var.R index 05637cf..82febdd 100644 --- a/R/create_con_var.R +++ b/R/create_con_var.R @@ -2,46 +2,64 @@ #' #' Creates a continuous mock variable based on specifications from variable_details. #' +#' **Configuration v0.2 format (NEW):** +#' @param var_row data.frame. Single row from mock_data_config (contains variable metadata) +#' @param details_subset data.frame. Rows from mock_data_config_details for this variable +#' @param n integer. Number of observations to generate +#' @param seed integer. Random seed for reproducibility. If NULL, uses global seed. +#' @param df_mock data.frame. The current mock data (to check if variable already exists) +#' +#' **Configuration v0.1 format (LEGACY):** #' @param var_raw character. The RAW variable name (as it appears in source data) #' @param cycle character. The cycle identifier (e.g., "cycle1", "HC1") #' @param variable_details data.frame. Variable details metadata #' @param variables data.frame. Variables metadata (optional, for validation) #' @param length integer. The desired length of the mock data vector -#' @param df_mock data.frame. The current mock data (to check if variable already exists) #' @param prop_NA numeric. Optional. Proportion of NA values (0 to 1). If NULL, no NAs introduced. -#' @param seed integer. Random seed for reproducibility. Default is 100. +#' @param prop_invalid numeric. Optional. Proportion of invalid out-of-range values (0 to 1). If NULL, no invalid values generated. #' @param distribution character. Distribution type: "uniform" (default) or "normal" #' #' @return data.frame with one column (the new continuous variable), or NULL if: -#' - Variable details not found +#' - Variable details not found (v0.1 only) #' - Variable already exists in df_mock #' - No valid range found #' #' @details -#' This function uses: -#' - `get_variable_details_for_raw()` to find variable specifications +#' **v0.2 format (NEW):** +#' - Uses `extract_distribution_params()` to get distribution parameters from details_subset +#' - Generates population based on specified distribution (uniform, normal, exponential) +#' - Applies missing codes with `apply_missing_codes()` +#' - Adds garbage using `make_garbage()` if garbage rows present +#' - Supports fallback mode: uniform `[0, 100]` when details_subset is NULL +#' +#' **v0.1 format (LEGACY):** +#' - Uses `get_variable_details_for_raw()` to find variable specifications +#' - Parses ranges from recStart using `parse_range_notation()` +#' - Supports "uniform" or "normal" distribution via parameter +#' - Handles prop_NA and prop_invalid parameters +#' +#' The function auto-detects which format based on parameter names. #' -#' The function handles continuous ranges: -#' - Closed intervals: "[18.5,25]" → 18.5 ≤ x ≤ 25 -#' - Half-open intervals: "[18.5,25)" → 18.5 ≤ x < 25 -#' - Open intervals: "(18.5,25)" → 18.5 < x < 25 -#' - Infinity ranges: "[30,inf)" → x ≥ 30 +#' **Type coercion (rType):** +#' If the metadata contains an `rType` column, values will be coerced to the specified R type: +#' - `"integer"`: Rounds and converts to integer (e.g., for age, counts, years) +#' - `"double"`: Converts to double (default for continuous variables) +#' - Other types are passed through without coercion #' -#' For variables with multiple ranges (e.g., age categories), uses the overall min/max. +#' This allows age variables to return integers (45L) instead of doubles (45.0), +#' matching real survey data. If `rType` is not specified, defaults to double. #' #' @examples #' \dontrun{ -#' # Create a continuous variable with uniform distribution -#' mock_drinks_week <- create_con_var( -#' var_raw = "alcdwky", -#' cycle = "cycle1", -#' variable_details = variable_details, -#' length = 1000, -#' df_mock = data.frame() -#' ) +#' # v0.2 format - called by create_mock_data() +#' config <- read_mock_data_config("mock_data_config.csv") +#' details <- read_mock_data_config_details("mock_data_config_details.csv") +#' var_row <- config[config$variable == "ALW_2A1", ] +#' details_subset <- get_variable_details(details, variable_name = "ALW_2A1") +#' mock_var <- create_con_var(var_row, details_subset, n = 1000, seed = 123) #' -#' # Create with normal distribution and NA values -#' mock_drinks_norm <- create_con_var( +#' # v0.1 format (legacy) +#' mock_drinks <- create_con_var( #' var_raw = "alcdwky", #' cycle = "cycle1", #' variable_details = variable_details, @@ -52,138 +70,370 @@ #' ) #' } #' +#' @family generators #' @export -create_con_var <- function(var_raw, cycle, variable_details, variables = NULL, - length, df_mock, prop_NA = NULL, seed = 100, - distribution = "uniform") { +create_con_var <- function(var_row = NULL, details_subset = NULL, n = NULL, + seed = NULL, df_mock = NULL, + # v0.1 legacy parameters + var_raw = NULL, cycle = NULL, variable_details = NULL, + variables = NULL, length = NULL, + prop_NA = NULL, prop_invalid = NULL, distribution = "uniform") { - # Level 1: Get variable details for this raw variable + cycle - var_details <- get_variable_details_for_raw(var_raw, cycle, variable_details, variables) + # Auto-detect format based on parameters + use_v02 <- !is.null(var_row) && is.data.frame(var_row) && nrow(var_row) == 1 - if (nrow(var_details) == 0) { - # No variable details found for this raw variable in this cycle - return(NULL) - } + if (use_v02) { + # ========== v0.2 IMPLEMENTATION ========== + var_name <- var_row$variable - # Check if variable already exists in mock data - if (var_raw %in% names(df_mock)) { - # Variable already created, skip - return(NULL) - } + # Check if variable already exists in mock data + if (!is.null(df_mock) && var_name %in% names(df_mock)) { + return(NULL) + } - # Level 2: Extract continuous ranges from recStart - # For continuous variables, we need to find the overall min/max from all ranges - rec_start_values <- var_details$recStart[!grepl("NA", var_details$recEnd, fixed = TRUE)] + # Set seed if provided + if (!is.null(seed)) set.seed(seed) - if (length(rec_start_values) == 0) { - # No valid ranges found - return(NULL) - } + # FALLBACK MODE: Uniform distribution [0, 100] if details_subset is NULL + if (is.null(details_subset) || nrow(details_subset) == 0) { + values <- runif(n, min = 0, max = 100) - # Parse all ranges to find overall min/max - all_mins <- c() - all_maxs <- c() - has_else <- FALSE + col <- data.frame( + new = values, + stringsAsFactors = FALSE + ) + names(col)[1] <- var_name + return(col) + } - for (value in rec_start_values) { - if (is.na(value) || value == "") next + # Extract distribution parameters from details_subset + params <- extract_distribution_params(details_subset, distribution_type = NULL) - parsed <- parse_range_notation(value) + # STEP 1: Generate population (valid values only) + # Extract proportions to determine valid vs missing + props <- extract_proportions(details_subset, variable_name = var_name) + n_valid <- floor(n * props$valid) - if (is.null(parsed)) next + # Generate based on distribution type + if (!is.null(params$distribution) && params$distribution == "normal") { + # Normal distribution + values <- rnorm(n_valid, mean = params$mean, sd = params$sd) - if (parsed$type %in% c("integer", "continuous", "single_value")) { - all_mins <- c(all_mins, parsed$min) - all_maxs <- c(all_maxs, parsed$max) - } else if (parsed$type == "special" && parsed$value == "else") { - # "else" means pass-through - we need to generate default values - has_else <- TRUE - } - } + # Clip to range if specified + if (!is.null(params$range_min) && !is.null(params$range_max)) { + values <- pmax(params$range_min, pmin(params$range_max, values)) + } + + } else if (!is.null(params$distribution) && params$distribution == "exponential") { + # Exponential distribution + values <- rexp(n_valid, rate = params$rate) + + # Clip to range if specified + if (!is.null(params$range_max)) { + values <- pmin(params$range_max, values) + } - if (length(all_mins) == 0 || length(all_maxs) == 0) { - if (has_else) { - # For "else" (pass-through) variables with no explicit range, - # use reasonable defaults based on common continuous variable ranges - warning(paste0( - "Variable '", var_raw, "' has recStart='else' with no explicit range. ", - "Using default range [0, 100]." - )) - all_mins <- c(0) - all_maxs <- c(100) } else { - # No valid numeric ranges found and no "else" + # Uniform distribution (default) + range_min <- if (!is.null(params$range_min)) params$range_min else 0 + range_max <- if (!is.null(params$range_max)) params$range_max else 100 + + values <- runif(n_valid, min = range_min, max = range_max) + } + + # STEP 2: Apply missing codes + n_missing <- n - n_valid + + if (n_missing > 0 && length(props$missing) > 0) { + # Generate missing assignments + missing_assignments <- sample( + names(props$missing), + size = n_missing, + replace = TRUE, + prob = unlist(props$missing) + ) + + # Create placeholder values for missing (will be replaced) + missing_values <- rep(NA, n_missing) + + # Combine valid and missing + all_values <- c(values, missing_values) + all_assignments <- c(rep("valid", n_valid), missing_assignments) + + # Create map of missing categories to their codes + missing_map <- list() + for (miss_cat in names(props$missing)) { + miss_row <- details_subset[details_subset$recEnd == miss_cat, ] + if (nrow(miss_row) > 0) { + # For continuous variables, missing codes should be numeric + # Check if 'value' column exists (v0.1 format) or use recEnd (v0.2 format) + code_value <- if ("value" %in% names(miss_row) && !is.na(miss_row$value[1])) { + miss_row$value[1] + } else { + NA + } + + if (is.na(code_value) || length(code_value) == 0) { + # Parse recEnd to extract numeric codes + # For ranges like "[997,999]", sample from 997, 998, 999 + # For single values like "996", use as-is + parsed <- parse_range_notation(miss_cat) + + if (!is.null(parsed) && parsed$type == "integer" && !is.null(parsed$values)) { + # Integer range - use expanded values (e.g., [997,999] → c(997, 998, 999)) + code_value <- parsed$values + } else if (!is.null(parsed) && parsed$type == "single_value") { + # Single numeric value + code_value <- parsed$value + } else { + # Fallback: try to convert to numeric + code_value <- suppressWarnings(as.numeric(miss_cat)) + if (is.na(code_value)) { + # If all else fails, use the string + code_value <- miss_cat + } + } + } + + missing_map[[miss_cat]] <- code_value + } + } + + # Apply missing codes + values <- apply_missing_codes( + values = all_values, + category_assignments = all_assignments, + missing_code_map = missing_map + ) + } + + # STEP 3: Apply garbage if specified + if (has_garbage(details_subset)) { + values <- make_garbage( + values = values, + details_subset = details_subset, + variable_type = "Continuous", + seed = NULL # Already set globally if needed + ) + } + + # STEP 4: Apply rType coercion if specified + if ("rType" %in% names(details_subset)) { + r_type <- details_subset$rType[1] + if (!is.null(r_type) && !is.na(r_type)) { + values <- switch(r_type, + "integer" = as.integer(round(values)), + "double" = as.double(values), + values # No coercion for other types + ) + } + } + + # Return as data frame + col <- data.frame( + new = values, + stringsAsFactors = FALSE + ) + names(col)[1] <- var_name + return(col) + + } else { + # ========== v0.1 LEGACY IMPLEMENTATION ========== + + # Level 1: Get variable details for this raw variable + cycle + var_details <- get_variable_details_for_raw(var_raw, cycle, variable_details, variables) + + if (nrow(var_details) == 0) { + # No variable details found for this raw variable in this cycle return(NULL) } - } - # Get overall range - overall_min <- min(all_mins, na.rm = TRUE) - overall_max <- max(all_maxs, na.rm = TRUE) + # Check if variable already exists in mock data + if (!is.null(df_mock) && var_raw %in% names(df_mock)) { + # Variable already created, skip + return(NULL) + } + + # Level 2: Extract continuous ranges from recStart + # For continuous variables, we need to find the overall min/max from all ranges + rec_start_values <- var_details$recStart[!grepl("NA", var_details$recEnd, fixed = TRUE)] + + if (length(rec_start_values) == 0) { + # No valid ranges found + return(NULL) + } + + # Parse all ranges to find overall min/max + all_mins <- c() + all_maxs <- c() + has_else <- FALSE + + for (value in rec_start_values) { + if (is.na(value) || value == "") next - # Handle infinity - if (is.infinite(overall_min)) overall_min <- 0 - if (is.infinite(overall_max)) overall_max <- overall_min + 100 # Arbitrary upper bound + parsed <- parse_range_notation(value) - # Level 2: Extract NA codes (if prop_NA specified) - na_labels <- NULL - if (!is.null(prop_NA) && prop_NA > 0) { - na_labels <- get_variable_categories(var_details, include_na = TRUE) + if (is.null(parsed)) next - if (length(na_labels) == 0) { - # No NA codes found, use actual NA - na_labels <- NA + if (parsed$type %in% c("integer", "continuous", "single_value")) { + all_mins <- c(all_mins, parsed$min) + all_maxs <- c(all_maxs, parsed$max) + } else if (parsed$type == "special" && parsed$value == "else") { + # "else" means pass-through - we need to generate default values + has_else <- TRUE + } + } + + if (length(all_mins) == 0 || length(all_maxs) == 0) { + if (has_else) { + # For "else" (pass-through) variables with no explicit range, + # use reasonable defaults based on common continuous variable ranges + warning(paste0( + "Variable '", var_raw, "' has recStart='else' with no explicit range. ", + "Using default range [0, 100]." + )) + all_mins <- c(0) + all_maxs <- c(100) + } else { + # No valid numeric ranges found and no "else" + return(NULL) + } } - } - # Generate mock data - set.seed(seed) + # Get overall range + overall_min <- min(all_mins, na.rm = TRUE) + overall_max <- max(all_maxs, na.rm = TRUE) - # Calculate counts - n_regular <- if (!is.null(prop_NA)) floor(length * (1 - prop_NA)) else length - n_na <- if (!is.null(prop_NA)) (length - n_regular) else 0 + # Handle infinity + if (is.infinite(overall_min)) overall_min <- 0 + if (is.infinite(overall_max)) overall_max <- overall_min + 100 # Arbitrary upper bound - # Generate continuous values - if (distribution == "normal") { - # Normal distribution centered at midpoint - midpoint <- (overall_min + overall_max) / 2 - spread <- (overall_max - overall_min) / 4 # Use 1/4 of range as SD + # Level 2: Extract NA codes (if prop_NA specified) + na_labels <- NULL + if (!is.null(prop_NA) && prop_NA > 0) { + na_labels <- get_variable_categories(var_details, include_na = TRUE) - values <- rnorm(n_regular, mean = midpoint, sd = spread) + if (length(na_labels) == 0) { + # No NA codes found, use actual NA + na_labels <- NA + } + } - # Clip to range - values <- pmax(overall_min, pmin(overall_max, values)) + # Generate mock data + if (!is.null(seed)) set.seed(seed) - } else { - # Uniform distribution (default) - values <- runif(n_regular, min = overall_min, max = overall_max) - } + # Use 'length' parameter for v0.1 + n_obs <- length + + # Calculate counts for each value type + prop_na_actual <- if (!is.null(prop_NA)) prop_NA else 0 + prop_invalid_actual <- if (!is.null(prop_invalid)) prop_invalid else 0 + + # Ensure proportions don't exceed 1 + total_prop <- prop_na_actual + prop_invalid_actual + if (total_prop > 1) { + stop(paste0( + "prop_NA (", prop_NA, ") + prop_invalid (", prop_invalid, ") = ", + total_prop, " exceeds 1.0" + )) + } + + # Calculate counts + n_na <- floor(n_obs * prop_na_actual) + n_invalid <- floor(n_obs * prop_invalid_actual) + n_regular <- n_obs - n_na - n_invalid + + # Generate regular continuous values + if (distribution == "normal") { + # Normal distribution centered at midpoint + midpoint <- (overall_min + overall_max) / 2 + spread <- (overall_max - overall_min) / 4 # Use 1/4 of range as SD + + values <- rnorm(n_regular, mean = midpoint, sd = spread) + + # Clip to range + values <- pmax(overall_min, pmin(overall_max, values)) - # Add NA values if requested - if (n_na > 0) { - if (length(na_labels) > 0 && !is.na(na_labels[1])) { - # Use NA codes from variable_details - na_values <- sample(na_labels, n_na, replace = TRUE) } else { - # Use actual NA - na_values <- rep(NA, n_na) + # Uniform distribution (default) + values <- runif(n_regular, min = overall_min, max = overall_max) } - # Combine and shuffle - all_values <- c(values, na_values) + # Generate invalid out-of-range values + invalid_values <- numeric(0) + if (n_invalid > 0) { + # Split invalid values between below-min and above-max + n_below <- floor(n_invalid / 2) + n_above <- n_invalid - n_below + + # Values below minimum (if min is not -Inf) + if (n_below > 0 && !is.infinite(overall_min)) { + # Generate values in range [min - 100, min - 1] + range_width <- min(100, abs(overall_min)) # Avoid excessive negative values + invalid_below <- runif(n_below, + min = overall_min - range_width, + max = overall_min - 0.001) + invalid_values <- c(invalid_values, invalid_below) + } + + # Values above maximum (if max is not Inf) + if (n_above > 0 && !is.infinite(overall_max)) { + # Generate values in range [max + 1, max + 100] + range_width <- max(100, abs(overall_max)) # Scale with magnitude + invalid_above <- runif(n_above, + min = overall_max + 0.001, + max = overall_max + range_width) + invalid_values <- c(invalid_values, invalid_above) + } + + # If we couldn't generate enough invalid values (due to infinite bounds), + # pad with values far outside typical range + if (length(invalid_values) < n_invalid) { + n_missing <- n_invalid - length(invalid_values) + padding <- runif(n_missing, min = 1e6, max = 1e7) + invalid_values <- c(invalid_values, padding) + } + } + + # Generate NA values + na_values <- numeric(0) + if (n_na > 0) { + if (length(na_labels) > 0 && !is.na(na_labels[1])) { + # Use NA codes from variable_details (convert to numeric) + na_values <- as.numeric(sample(na_labels, n_na, replace = TRUE)) + } else { + # Use actual NA + na_values <- rep(NA_real_, n_na) + } + } + + # Combine all values and shuffle + all_values <- c(values, invalid_values, na_values) all_values <- sample(all_values) - } else { - all_values <- values - } - # Ensure exact length - col <- data.frame( - new = all_values[1:length], - stringsAsFactors = FALSE - ) + # Ensure exact length + all_values <- all_values[1:n_obs] - # Set column name to raw variable name - names(col)[1] <- var_raw + # Apply rType coercion if specified + if ("rType" %in% names(var_details)) { + r_type <- var_details$rType[1] + if (!is.null(r_type) && !is.na(r_type)) { + all_values <- switch(r_type, + "integer" = as.integer(round(all_values)), + "double" = as.double(all_values), + all_values # No coercion for other types + ) + } + } + + col <- data.frame( + new = all_values, + stringsAsFactors = FALSE + ) - return(col) + # Set column name to raw variable name + names(col)[1] <- var_raw + + return(col) + } } diff --git a/R/create_date_var.R b/R/create_date_var.R new file mode 100644 index 0000000..24d5217 --- /dev/null +++ b/R/create_date_var.R @@ -0,0 +1,356 @@ +#' Create date variable for MockData +#' +#' Creates a mock date variable based on specifications from variable_details. +#' +#' **Configuration v0.2 format (NEW):** +#' @param var_row data.frame. Single row from mock_data_config (contains variable metadata) +#' @param details_subset data.frame. Rows from mock_data_config_details for this variable +#' @param n integer. Number of observations to generate +#' @param seed integer. Random seed for reproducibility. If NULL, uses global seed. +#' @param source_format character. Format to simulate post-import data: "analysis" (R Date objects), +#' "csv" (character ISO strings), "sas" (numeric days since 1960-01-01). Default: "analysis". +#' @param df_mock data.frame. The current mock data (to check if variable already exists) +#' +#' **Configuration v0.1 format (LEGACY):** +#' @param var_raw character. The RAW variable name (as it appears in source data) +#' @param cycle character. The database or cycle identifier (e.g., "cycle1", "HC1") +#' @param variable_details data.frame. Variable details metadata +#' @param variables data.frame. Variables metadata (optional, for validation) +#' @param length integer. The desired length of the mock data vector +#' @param prop_NA numeric. Optional. Proportion of NA values (0 to 1). If NULL, no NAs introduced. +#' @param prop_invalid numeric. Optional. Proportion of invalid out-of-period dates (0 to 1). If NULL, no invalid dates generated. +#' @param distribution character. Distribution type: "uniform" (default), "gompertz", or "exponential" +#' +#' @return data.frame with one column (the new date variable), or NULL if: +#' - Variable details not found (v0.1 only) +#' - Variable already exists in df_mock +#' - No valid date range found +#' +#' @details +#' **v0.2 format (NEW):** +#' - Extracts date_start and date_end from details_subset +#' - Generates dates uniformly distributed between start and end +#' - Applies missing codes with `apply_missing_codes()` +#' - Adds garbage using `make_garbage()` if garbage rows present +#' - Supports fallback mode: uniform distribution `[2000-01-01, 2025-12-31]` when details_subset is NULL +#' +#' **v0.1 format (LEGACY):** +#' - Uses `get_variable_details_for_raw()` to find variable specifications +#' - Parses SAS date format from recStart: `"[01JAN2001, 31MAR2017]"` +#' - Supports "uniform", "gompertz", or "exponential" distribution +#' - Handles prop_NA and prop_invalid parameters +#' +#' The function auto-detects which format based on parameter names. +#' +#' @examples +#' \dontrun{ +#' # v0.2 format - called by create_mock_data() +#' config <- read_mock_data_config("mock_data_config.csv") +#' details <- read_mock_data_config_details("mock_data_config_details.csv") +#' var_row <- config[config$variable == "index_date", ] +#' details_subset <- get_variable_details(details, variable_name = "index_date") +#' mock_var <- create_date_var(var_row, details_subset, n = 1000, seed = 123) +#' +#' # v0.1 format (legacy) +#' mock_death_date <- create_date_var( +#' var_raw = "death_date", +#' cycle = "ices", +#' variable_details = variable_details, +#' length = 1000, +#' df_mock = existing_data, +#' prop_NA = 0.02, +#' distribution = "gompertz" +#' ) +#' } +#' +#' @family generators +#' @export +create_date_var <- function(var_row = NULL, details_subset = NULL, n = NULL, + seed = NULL, source_format = "analysis", df_mock = NULL, + # v0.1 legacy parameters + var_raw = NULL, cycle = NULL, variable_details = NULL, + variables = NULL, length = NULL, + prop_NA = NULL, prop_invalid = NULL, distribution = "uniform") { + + # Helper function to convert dates to specified source format + convert_date_format <- function(date_vector, format) { + if (format == "csv") { + # CSV format: character ISO strings (e.g., "2001-01-15") + return(as.character(date_vector)) + } else if (format == "sas") { + # SAS format: numeric days since 1960-01-01 + sas_epoch <- as.Date("1960-01-01") + return(as.numeric(date_vector - sas_epoch)) + } else { + # "analysis" or default: keep as R Date objects + return(date_vector) + } + } + + # Auto-detect format based on parameters + use_v02 <- !is.null(var_row) && is.data.frame(var_row) && nrow(var_row) == 1 + + if (use_v02) { + # ========== v0.2 IMPLEMENTATION ========== + var_name <- var_row$variable + + # Check if variable already exists in mock data + if (!is.null(df_mock) && var_name %in% names(df_mock)) { + return(NULL) + } + + # Set seed if provided + if (!is.null(seed)) set.seed(seed) + + # FALLBACK MODE: Default date range if details_subset is NULL + if (is.null(details_subset) || nrow(details_subset) == 0) { + # Default range: 2000-01-01 to 2025-12-31 + date_start <- as.Date("2000-01-01") + date_end <- as.Date("2025-12-31") + + values <- sample(seq(date_start, date_end, by = "day"), size = n, replace = TRUE) + + # Apply source format conversion + values <- convert_date_format(values, source_format) + + col <- data.frame( + new = values, + stringsAsFactors = FALSE + ) + names(col)[1] <- var_name + return(col) + } + + # Extract date_start and date_end from details_subset + # Look for rows with recEnd = "date_start" and recEnd = "date_end" + date_start_row <- details_subset[details_subset$recEnd == "date_start", ] + date_end_row <- details_subset[details_subset$recEnd == "date_end", ] + + if (nrow(date_start_row) == 0 || nrow(date_end_row) == 0) { + warning(paste0("Missing date_start or date_end for ", var_name, ". Using defaults.")) + date_start <- as.Date("2000-01-01") + date_end <- as.Date("2025-12-31") + } else { + # Parse dates from date_start and date_end columns + date_start <- as.Date(date_start_row$date_start[1]) + date_end <- as.Date(date_end_row$date_end[1]) + + if (is.na(date_start) || is.na(date_end)) { + warning(paste0("Invalid date_start or date_end for ", var_name, ". Using defaults.")) + date_start <- as.Date("2000-01-01") + date_end <- as.Date("2025-12-31") + } + } + + # STEP 1: Generate population (all valid dates) + # For date variables, we don't use proportions - just generate uniform distribution + # Date variables typically don't have missing codes in v0.2 format + + # Generate valid dates uniformly distributed + valid_dates <- seq(date_start, date_end, by = "day") + values <- sample(valid_dates, size = n, replace = TRUE) + + # STEP 3: Apply garbage if specified + if (has_garbage(details_subset)) { + values <- make_garbage( + values = values, + details_subset = details_subset, + variable_type = "date", + seed = NULL # Already set globally if needed + ) + } + + # STEP 4: Apply source format conversion + values <- convert_date_format(values, source_format) + + # Return as data frame + col <- data.frame( + new = values, + stringsAsFactors = FALSE + ) + names(col)[1] <- var_name + return(col) + + } else { + # ========== v0.1 LEGACY IMPLEMENTATION ========== + + # Get variable details for this raw variable and cycle + var_details <- get_variable_details_for_raw( + var_raw, + cycle, + variable_details, + variables + ) + + if (nrow(var_details) == 0) { + # No variable details found for this raw variable in this cycle + return(NULL) + } + + if (!is.null(df_mock) && var_raw %in% names(df_mock)) { + # Variable already exists in mock data + return(NULL) + } + + # Extract date range from recStart + rec_start_values <- var_details$recStart[ + !grepl("NA", var_details$recEnd, fixed = TRUE) + ] + + pattern <- "^\\[\\d{2}[A-Z]{3}\\d{4},\\s*\\d{2}[A-Z]{3}\\d{4}\\]$" + + # Check if any value matches the pattern (handle vector input) + if (!any(stringr::str_detect(rec_start_values, pattern))) { + # recStart value does not match the expected pattern of [startdate, enddate] + return(NULL) + } + + dates <- stringr::str_extract_all(rec_start_values, "\\d{2}[A-Z]{3}\\d{4}")[[ + 1 + ]] + + parsed <- lubridate::parse_date_time(dates, orders = "db Y", locale = "en_US.UTF-8") + + if (any(is.na(parsed))) { + # Extracted dates do not conform to ddmmmyyyy format + return(NULL) + } + + # Generate a sequence of valid dates from start to end (inclusive) + valid_dates <- seq(parsed[1], parsed[2], by = "day") + n_days <- as.numeric(difftime(parsed[2], parsed[1], units = "days")) + + # Extract NA codes if prop_NA specified + # For dates, we typically use actual NA rather than numeric codes + # But check metadata for explicit NA codes just in case + na_values <- NULL + if (!is.null(prop_NA) && prop_NA > 0) { + # Check for NA codes in metadata + na_rows <- var_details[grepl("NA", var_details$recEnd, fixed = TRUE), ] + + if (nrow(na_rows) > 0) { + # Use actual NA for dates (not numeric codes) + na_values <- NA + warning(paste0( + "Variable '", var_raw, "' has NA codes in metadata, but date variables use R NA. ", + "Using NA for missing dates." + )) + } else { + na_values <- NA + } + } + + # Generate mock data + if (!is.null(seed)) set.seed(seed) + + # Use 'length' parameter for v0.1 + n_obs <- length + + # Calculate counts for each value type + prop_na_actual <- if (!is.null(prop_NA)) prop_NA else 0 + prop_invalid_actual <- if (!is.null(prop_invalid)) prop_invalid else 0 + + # Ensure proportions don't exceed 1 + total_prop <- prop_na_actual + prop_invalid_actual + if (total_prop > 1) { + stop(paste0( + "prop_NA (", prop_NA, ") + prop_invalid (", prop_invalid, ") = ", + total_prop, " exceeds 1.0" + )) + } + + # Calculate counts + n_na <- floor(n_obs * prop_na_actual) + n_invalid <- floor(n_obs * prop_invalid_actual) + n_regular <- n_obs - n_na - n_invalid + + # Generate date values based on distribution + if (distribution == "uniform") { + # Uniform distribution: equal probability for all dates + date_values <- sample(valid_dates, size = n_regular, replace = TRUE) + + } else if (distribution == "gompertz") { + # Gompertz distribution: useful for survival/event times + # Shape parameter (eta) and rate parameter (b) + # Higher events near end of range (typical survival pattern) + eta <- 0.1 # Shape parameter + b <- 0.01 # Rate parameter + + # Generate Gompertz-distributed proportions [0,1] + u <- runif(n_regular) + t <- (1/b) * log(1 - (b/eta) * log(1 - u)) + t <- pmin(pmax(t, 0), 1) # Clip to [0, 1] + + # Map to date range (index into valid_dates vector) + date_indices <- pmax(1, pmin(round(t * length(valid_dates)), length(valid_dates))) + date_values <- valid_dates[date_indices] + + } else if (distribution == "exponential") { + # Exponential distribution: useful for time-to-event + # More events near start of range + rate <- 1 / (n_days / 3) # Mean at 1/3 of range + + # Generate exponential-distributed days from start + days_from_start <- rexp(n_regular, rate = rate) + days_from_start <- pmin(days_from_start, n_days) # Clip to range + + # Map to dates (index into valid_dates vector) + date_indices <- pmax(1, pmin(round(days_from_start) + 1, length(valid_dates))) + date_values <- valid_dates[date_indices] + + } else { + stop(paste0( + "Unknown distribution '", distribution, "'. ", + "Must be one of: 'uniform', 'gompertz', 'exponential'" + )) + } + + # Convert to Date objects + date_values <- as.Date(date_values, origin = "1970-01-01") + + # Generate invalid out-of-period dates + invalid_dates <- as.Date(character(0)) + if (n_invalid > 0) { + # Split invalid dates between before-start and after-end + n_before <- floor(n_invalid / 2) + n_after <- n_invalid - n_before + + # Dates before start (1-5 years earlier) + if (n_before > 0) { + days_before <- sample(365:(5*365), n_before, replace = TRUE) + invalid_before <- parsed[1] - days_before + invalid_dates <- c(invalid_dates, as.Date(invalid_before, origin = "1970-01-01")) + } + + # Dates after end (1-5 years later) + if (n_after > 0) { + days_after <- sample(365:(5*365), n_after, replace = TRUE) + invalid_after <- parsed[2] + days_after + invalid_dates <- c(invalid_dates, as.Date(invalid_after, origin = "1970-01-01")) + } + } + + # Generate NA values + na_dates <- if (n_na > 0) rep(as.Date(NA), n_na) else as.Date(character(0)) + + # Combine all values and shuffle + all_values <- c(date_values, invalid_dates, na_dates) + all_values <- sample(all_values) + + # Ensure exact length + all_values <- all_values[1:n_obs] + + # Apply source format conversion + all_values <- convert_date_format(all_values, source_format) + + col <- data.frame( + new = all_values, + stringsAsFactors = FALSE + ) + + # Set column name to raw variable name + names(col)[1] <- var_raw + + return(col) + } +} diff --git a/R/create_mock_data.R b/R/create_mock_data.R new file mode 100644 index 0000000..220588d --- /dev/null +++ b/R/create_mock_data.R @@ -0,0 +1,239 @@ +#' Create mock data from configuration files +#' +#' @description +#' Main orchestrator function that generates complete mock datasets from +#' v0.2 configuration files. Reads config and details files, filters for +#' enabled variables, dispatches to type-specific create_* functions, and +#' assembles results into a complete data frame. +#' +#' @param config_path Character. Path to mock_data_config.csv file. +#' @param details_path Character. Optional path to mock_data_config_details.csv. +#' If NULL, uses uniform distributions (fallback mode). +#' @param n Integer. Number of observations to generate (default 1000). +#' @param seed Integer. Optional random seed for reproducibility. +#' @param source_format Character. Format to simulate post-import data from different sources. +#' Options: "analysis" (default, R Date objects), "csv" (character strings), +#' "sas" (numeric days since 1960-01-01). Only affects date variables. +#' @param validate Logical. Whether to validate configuration files (default TRUE). +#' @param verbose Logical. Whether to print progress messages (default FALSE). +#' +#' @return Data frame with n rows and one column per enabled variable. +#' +#' @details +#' The function performs the following steps: +#' 1. Read and validate config file +#' 2. Read and validate details file (if provided) +#' 3. Filter for enabled variables +#' 4. Set global seed (if provided) +#' 5. Loop through variables in position order: +#' - Extract var_row and details_subset +#' - Dispatch to create_cat_var, create_con_var, create_date_var, or create_survival_dates +#' - Merge result into data frame +#' 6. Return complete dataset +#' +#' **Fallback mode**: If details_path = NULL, uses uniform distributions for all +#' enabled variables. +#' +#' **Variable types supported**: +#' - categorical: create_cat_var() +#' - continuous: create_con_var() +#' - date: create_date_var() +#' - survival: create_survival_dates() +#' - character: create_char_var() (if implemented) +#' - integer: create_int_var() (if implemented) +#' +#' @examples +#' \dontrun{ +#' # Generate mock data with details +#' mock_data <- create_mock_data( +#' config_path = "inst/extdata/mock_data_config.csv", +#' details_path = "inst/extdata/mock_data_config_details.csv", +#' n = 1000, +#' seed = 123 +#' ) +#' +#' # Fallback mode (uniform distributions) +#' mock_data <- create_mock_data( +#' config_path = "inst/extdata/mock_data_config.csv", +#' details_path = NULL, +#' n = 500 +#' ) +#' +#' # View structure +#' str(mock_data) +#' head(mock_data) +#' } +#' +#' @family data-generation +#' @export +create_mock_data <- function(config_path, + details_path = NULL, + n = 1000, + seed = NULL, + source_format = "analysis", + validate = TRUE, + verbose = FALSE) { + + # Input validation + if (!file.exists(config_path)) { + stop("Configuration file does not exist: ", config_path) + } + + if (!is.null(details_path) && !file.exists(details_path)) { + stop("Details file does not exist: ", details_path) + } + + if (n < 1) { + stop("n must be at least 1") + } + + # Validate source_format parameter + valid_formats <- c("analysis", "csv", "sas") + if (!source_format %in% valid_formats) { + stop("source_format must be one of: ", + paste(valid_formats, collapse = ", "), + "\n Got: ", source_format) + } + + # Read configuration + if (verbose) message("Reading configuration file...") + config <- read_mock_data_config(config_path, validate = validate) + + # Read details (if provided) + details <- NULL + if (!is.null(details_path)) { + if (verbose) message("Reading details file...") + details <- read_mock_data_config_details(details_path, validate = validate) + } else { + if (verbose) message("No details file provided - using fallback mode (uniform distributions)") + } + + # Filter for enabled variables + if (verbose) message("Filtering for enabled variables...") + enabled_vars <- get_enabled_variables(config) + + if (nrow(enabled_vars) == 0) { + stop("No enabled variables found in configuration. ", + "Add role='enabled' to variables you want to generate.") + } + + if (verbose) { + message("Found ", nrow(enabled_vars), " enabled variable(s): ", + paste(enabled_vars$variable, collapse = ", ")) + } + + # Set global seed if provided + if (!is.null(seed)) { + if (verbose) message("Setting random seed: ", seed) + set.seed(seed) + } + + # Initialize empty data frame + df_mock <- data.frame(row.names = seq_len(n)) + + # Generate variables in position order + if (verbose) message("Generating ", n, " observations...") + + for (i in seq_len(nrow(enabled_vars))) { + var_row <- enabled_vars[i, ] + var_name <- var_row$variable + var_type <- tolower(var_row$variableType) + + # Detect date variables by role column (v2.1.0 hack: dates are "Continuous" with date-related roles) + var_role <- if ("role" %in% names(var_row) && !is.na(var_row$role)) { + var_row$role + } else { + "" + } + # Check if role contains "date" (e.g., "index-date", "outcome-date", "date") + is_date_var <- grepl("date", var_role, ignore.case = TRUE) + + if (verbose) { + display_type <- if (is_date_var) paste0(var_type, "/date") else var_type + message(" [", i, "/", nrow(enabled_vars), "] Generating ", + var_name, " (", display_type, ")") + } + + # Get details for this variable + details_subset <- get_variable_details(details, variable_name = var_name) + + # Dispatch to type-specific generator + var_data <- tryCatch({ + # Override type dispatch for date variables + if (is_date_var) { + create_date_var( + var_row = var_row, + details_subset = details_subset, + n = n, + seed = NULL, + source_format = source_format, + df_mock = df_mock + ) + } else { + switch(var_type, + "categorical" = create_cat_var( + var_row = var_row, + details_subset = details_subset, + n = n, + seed = NULL, # Global seed already set + df_mock = df_mock + ), + "continuous" = create_con_var( + var_row = var_row, + details_subset = details_subset, + n = n, + seed = NULL, + df_mock = df_mock + ), + "date" = create_date_var( + var_row = var_row, + details_subset = details_subset, + n = n, + seed = NULL, + source_format = source_format, + df_mock = df_mock + ), + "survival" = { + # NOTE: Survival dates require manual generation outside create_mock_data() + # because they need TWO variables (entry + event) processed together. + # See create_survival_dates() documentation and dates vignette for examples. + warning("Survival variable type must be generated manually with create_survival_dates(): ", var_name, + "\n Reason: Requires paired entry+event variables, not compatible with single-variable loop.") + NULL + }, + "character" = { + warning("Character variable type not yet implemented: ", var_name) + NULL + }, + "integer" = { + warning("Integer variable type not yet implemented: ", var_name) + NULL + }, + { + warning("Unknown variable type '", var_type, "' for variable: ", var_name) + NULL + } + ) + } + }, error = function(e) { + warning("Error generating variable ", var_name, ": ", e$message) + NULL + }) + + # Merge into dataset if generation succeeded + if (!is.null(var_data) && is.data.frame(var_data)) { + # Add columns from var_data to df_mock + for (col_name in names(var_data)) { + df_mock[[col_name]] <- var_data[[col_name]] + } + } + } + + if (verbose) { + message("Mock data generation complete!") + message(" Rows: ", nrow(df_mock)) + message(" Variables: ", ncol(df_mock)) + } + + return(df_mock) +} diff --git a/R/create_survival_dates.R b/R/create_survival_dates.R new file mode 100644 index 0000000..1a6672b --- /dev/null +++ b/R/create_survival_dates.R @@ -0,0 +1,388 @@ +#' Create paired survival dates for cohort studies +#' +#' Generates entry and event dates with guaranteed temporal ordering (entry < event). +#' Useful for survival analysis, cohort studies, and time-to-event modeling. +#' +#' **Configuration v0.2 format (NEW):** +#' @param entry_var_row data.frame. Single row from mock_data_config for entry date variable +#' @param entry_details_subset data.frame. Rows from mock_data_config_details for entry date +#' @param event_var_row data.frame. Single row from mock_data_config for event date variable +#' @param event_details_subset data.frame. Rows from mock_data_config_details for event date +#' @param n integer. Number of observations to generate +#' @param seed integer. Random seed for reproducibility. If NULL, uses global seed. +#' @param df_mock data.frame. The current mock data (to check if variables already exist) +#' +#' **Configuration v0.1 format (LEGACY):** +#' @param entry_var character. Name for entry date variable +#' @param event_var character. Name for event date variable +#' @param entry_start Date. Start of entry period +#' @param entry_end Date. End of entry period +#' @param followup_min integer. Minimum follow-up days +#' @param followup_max integer. Maximum follow-up days +#' @param length integer. Number of records to generate +#' @param event_distribution character. Distribution for time-to-event: "uniform", "gompertz", "exponential" +#' @param prop_censored numeric. Proportion of records to censor (0-1) +#' @param prop_NA numeric. Proportion of missing values (0-1) +#' @param prop_invalid numeric. Optional. Proportion of temporal violations (entry > event) (0 to 1). If NULL, no invalid dates generated. +#' +#' @return data.frame with entry_date, event_date, and optionally event_status columns, or NULL if: +#' - Variables already exist in df_mock +#' - Missing required configuration +#' +#' @details +#' **v0.2 format (NEW):** +#' - Extracts date ranges from entry_details_subset and event_details_subset +#' - Generates entry dates uniformly distributed +#' - Calculates event dates to ensure entry < event +#' - Supports garbage data via `catLabel::garbage` in event_details_subset +#' - Supports fallback mode: reasonable defaults when details_subset is NULL +#' +#' **v0.1 format (LEGACY):** +#' - Accepts explicit date ranges and follow-up parameters +#' - Supports multiple event distributions (uniform, gompertz, exponential) +#' - Handles censoring, missing values, and temporal violations via parameters +#' +#' The function auto-detects which format based on parameter names. +#' +#' This function generates realistic survival data by: +#' 1. Creating entry dates uniformly distributed across entry period +#' 2. Generating follow-up times using specified distribution +#' 3. Calculating event dates (entry + follow-up) +#' 4. Optionally censoring events (event_status = 0) +#' 5. Ensuring entry_date < event_date for all records +#' +#' **Event distributions:** +#' - "uniform": Constant hazard over follow-up period +#' - "gompertz": Increasing hazard (mortality increases with time) +#' - "exponential": Decreasing hazard (early events more common) +#' +#' **Censoring:** +#' When prop_censored > 0, generates event_status column: +#' - 1 = event observed +#' - 0 = censored (event_date becomes censoring date) +#' +#' @examples +#' \dontrun{ +#' # v0.2 format - called by create_mock_data() +#' config <- read_mock_data_config("mock_data_config.csv") +#' details <- read_mock_data_config_details("mock_data_config_details.csv") +#' entry_row <- config[config$variable == "study_entry", ] +#' entry_details <- get_variable_details(details, variable_name = "study_entry") +#' event_row <- config[config$variable == "death_date", ] +#' event_details <- get_variable_details(details, variable_name = "death_date") +#' surv_data <- create_survival_dates( +#' entry_var_row = entry_row, +#' entry_details_subset = entry_details, +#' event_var_row = event_row, +#' event_details_subset = event_details, +#' n = 1000, +#' seed = 123 +#' ) +#' +#' # v0.2 with garbage (catLabel::garbage in config_details) +#' # In mock_data_config_details.csv: +#' # variable,recEnd,catLabel,proportion +#' # death_date,followup_min,, +#' # death_date,followup_max,, +#' # death_date,garbage,garbage,0.03 +#' event_details_with_garbage <- get_variable_details(details, variable_name = "death_date") +#' surv_data_garbage <- create_survival_dates( +#' entry_var_row = entry_row, +#' entry_details_subset = entry_details, +#' event_var_row = event_row, +#' event_details_subset = event_details_with_garbage, +#' n = 1000, +#' seed = 123 +#' ) +#' +#' # v0.1 format (legacy) - Basic mortality study +#' surv_data <- create_survival_dates( +#' entry_var = "study_entry", +#' event_var = "death_date", +#' entry_start = as.Date("2000-01-01"), +#' entry_end = as.Date("2005-12-31"), +#' followup_min = 365, +#' followup_max = 3650, +#' length = 1000, +#' df_mock = data.frame(), +#' event_distribution = "gompertz" +#' ) +#' +#' # v0.1 with censoring +#' surv_data <- create_survival_dates( +#' entry_var = "cohort_entry", +#' event_var = "event_date", +#' entry_start = as.Date("2010-01-01"), +#' entry_end = as.Date("2015-12-31"), +#' followup_min = 30, +#' followup_max = 1825, +#' length = 500, +#' df_mock = data.frame(), +#' event_distribution = "exponential", +#' prop_censored = 0.3 +#' ) +#' +#' # v0.1 with temporal violations for validation testing +#' surv_data <- create_survival_dates( +#' entry_var = "interview_date", +#' event_var = "death_date", +#' entry_start = as.Date("2015-01-01"), +#' entry_end = as.Date("2016-12-31"), +#' followup_min = 30, +#' followup_max = 3650, +#' length = 1000, +#' df_mock = data.frame(), +#' prop_invalid = 0.03 # 3% temporal violations +#' ) +#' } +#' +#' @family generators +#' @export +create_survival_dates <- function(entry_var_row = NULL, entry_details_subset = NULL, + event_var_row = NULL, event_details_subset = NULL, + n = NULL, seed = NULL, df_mock = NULL, + # v0.1 legacy parameters + entry_var = NULL, event_var = NULL, + entry_start = NULL, entry_end = NULL, + followup_min = NULL, followup_max = NULL, + length = NULL, + event_distribution = "uniform", + prop_censored = 0, + prop_NA = NULL, + prop_invalid = NULL) { + + # Auto-detect format based on parameters + use_v02 <- !is.null(entry_var_row) && is.data.frame(entry_var_row) && nrow(entry_var_row) == 1 && + !is.null(event_var_row) && is.data.frame(event_var_row) && nrow(event_var_row) == 1 + + if (use_v02) { + # ========== v0.2 IMPLEMENTATION ========== + entry_var_name <- entry_var_row$variable + event_var_name <- event_var_row$variable + + # Check if variables already exist in mock data + if (!is.null(df_mock) && (entry_var_name %in% names(df_mock) || event_var_name %in% names(df_mock))) { + return(NULL) + } + + # Set seed if provided + if (!is.null(seed)) set.seed(seed) + + # FALLBACK MODE: Default ranges if details_subset is NULL + if (is.null(entry_details_subset) || nrow(entry_details_subset) == 0) { + entry_start <- as.Date("2000-01-01") + entry_end <- as.Date("2005-12-31") + } else { + # Extract date_start and date_end from entry_details_subset + date_start_row <- entry_details_subset[entry_details_subset$recEnd == "date_start", ] + date_end_row <- entry_details_subset[entry_details_subset$recEnd == "date_end", ] + + if (nrow(date_start_row) == 0 || nrow(date_end_row) == 0) { + warning(paste0("Missing date_start or date_end for ", entry_var_name, ". Using defaults.")) + entry_start <- as.Date("2000-01-01") + entry_end <- as.Date("2005-12-31") + } else { + entry_start <- as.Date(date_start_row$date_start[1]) + entry_end <- as.Date(date_end_row$date_end[1]) + + if (is.na(entry_start) || is.na(entry_end)) { + warning(paste0("Invalid date_start or date_end for ", entry_var_name, ". Using defaults.")) + entry_start <- as.Date("2000-01-01") + entry_end <- as.Date("2005-12-31") + } + } + } + + # For event dates, extract follow-up range if available + if (is.null(event_details_subset) || nrow(event_details_subset) == 0) { + # Default: 1-10 years follow-up + followup_min <- 365 + followup_max <- 3650 + } else { + # Look for followup_min and followup_max in details_subset + followup_min_row <- event_details_subset[event_details_subset$recEnd == "followup_min", ] + followup_max_row <- event_details_subset[event_details_subset$recEnd == "followup_max", ] + + if (nrow(followup_min_row) > 0 && nrow(followup_max_row) > 0) { + followup_min <- as.numeric(followup_min_row$value[1]) + followup_max <- as.numeric(followup_max_row$value[1]) + + if (is.na(followup_min) || is.na(followup_max)) { + warning(paste0("Invalid followup range for ", event_var_name, ". Using defaults.")) + followup_min <- 365 + followup_max <- 3650 + } + } else { + # Fallback: 1-10 years + followup_min <- 365 + followup_max <- 3650 + } + } + + # Generate entry dates (uniform distribution) + entry_range_days <- as.numeric(entry_end - entry_start) + entry_days <- sample(0:entry_range_days, n, replace = TRUE) + entry_dates <- entry_start + entry_days + + # Generate follow-up times (uniform distribution for v0.2) + followup_days <- sample(followup_min:followup_max, n, replace = TRUE) + + # Calculate event dates + event_dates <- entry_dates + round(followup_days) + + # Create result data frame + result <- data.frame( + entry = entry_dates, + event = event_dates, + stringsAsFactors = FALSE + ) + + # Apply garbage if specified in event_details_subset (catLabel::garbage) + if (!is.null(event_details_subset) && nrow(event_details_subset) > 0) { + # Check for garbage rows + has_garbage <- any(!is.na(event_details_subset$catLabel) & + event_details_subset$catLabel == "garbage") + + if (has_garbage) { + garbage_row <- event_details_subset[!is.na(event_details_subset$catLabel) & + event_details_subset$catLabel == "garbage", ] + + if (nrow(garbage_row) > 0 && !is.na(garbage_row$proportion[1])) { + prop_invalid <- garbage_row$proportion[1] + + if (prop_invalid > 0) { + n_invalid <- floor(n * prop_invalid) + invalid_indices <- sample(1:n, n_invalid, replace = FALSE) + + # Swap entry and event dates to create temporal violations + for (idx in invalid_indices) { + temp <- result$entry[idx] + result$entry[idx] <- result$event[idx] + result$event[idx] <- temp + } + } + } + } + } + + # Rename columns to variable names + names(result)[1] <- entry_var_name + names(result)[2] <- event_var_name + + return(result) + + } else { + # ========== v0.1 LEGACY IMPLEMENTATION ========== + + # Validate inputs + if (!inherits(entry_start, "Date") || !inherits(entry_end, "Date")) { + stop("entry_start and entry_end must be Date objects") + } + if (entry_start >= entry_end) { + stop("entry_start must be before entry_end") + } + if (followup_min >= followup_max) { + stop("followup_min must be less than followup_max") + } + if (prop_censored < 0 || prop_censored > 1) { + stop("prop_censored must be between 0 and 1") + } + + # Check if variables already exist + if (entry_var %in% names(df_mock) || event_var %in% names(df_mock)) { + return(NULL) + } + + if (!is.null(seed)) set.seed(seed) + + # Generate entry dates (uniform distribution) + entry_range_days <- as.numeric(entry_end - entry_start) + entry_days <- sample(0:entry_range_days, length, replace = TRUE) + entry_dates <- entry_start + entry_days + + # Generate follow-up times based on distribution + if (event_distribution == "uniform") { + followup_days <- sample(followup_min:followup_max, length, replace = TRUE) + + } else if (event_distribution == "gompertz") { + # Gompertz: increasing hazard over time + # Use inverse transform sampling + u <- runif(length) + shape <- 0.1 + rate <- 0.01 + + # Scale to follow-up range + range_days <- followup_max - followup_min + gompertz_days <- (-1/rate) * log(1 - (rate/shape) * log(1 - u)) + + # Normalize to desired range + gompertz_days <- gompertz_days / max(gompertz_days, na.rm = TRUE) * range_days + followup_days <- pmax(followup_min, pmin(followup_max, followup_min + gompertz_days)) + + } else if (event_distribution == "exponential") { + # Exponential: early events more common + rate <- 3 / (followup_max - followup_min) + exp_days <- rexp(length, rate = rate) + followup_days <- pmax(followup_min, pmin(followup_max, followup_min + exp_days)) + + } else { + stop("event_distribution must be 'uniform', 'gompertz', or 'exponential'") + } + + # Calculate event dates + event_dates <- entry_dates + round(followup_days) + + # Create result data frame + result <- data.frame( + entry = entry_dates, + event = event_dates, + stringsAsFactors = FALSE + ) + + # Add censoring if requested + if (prop_censored > 0) { + n_censored <- floor(length * prop_censored) + censored_indices <- sample(1:length, n_censored, replace = FALSE) + + result$event_status <- 1 + result$event_status[censored_indices] <- 0 + + # For censored records, event_date becomes censoring date + # (administratively censored at random point in follow-up) + for (i in censored_indices) { + max_censor_days <- as.numeric(result$event[i] - result$entry[i]) + censor_days <- sample(followup_min:max_censor_days, 1) + result$event[i] <- result$entry[i] + censor_days + } + } + + # Add missing values if requested + if (!is.null(prop_NA) && prop_NA > 0) { + n_na <- floor(length * prop_NA) + na_indices <- sample(1:length, n_na, replace = FALSE) + + # Set both dates to NA for missing records + result$entry[na_indices] <- NA + result$event[na_indices] <- NA + } + + # Add temporal violations if requested (entry > event) + if (!is.null(prop_invalid) && prop_invalid > 0) { + n_invalid <- floor(length * prop_invalid) + invalid_indices <- sample(1:length, n_invalid, replace = FALSE) + + # Swap entry and event dates to create temporal violations + for (idx in invalid_indices) { + temp <- result$entry[idx] + result$entry[idx] <- result$event[idx] + result$event[idx] <- temp + } + } + + # Rename columns to user-specified names + names(result)[1] <- entry_var + names(result)[2] <- event_var + + return(result) + } +} diff --git a/R/determine_proportions.R b/R/determine_proportions.R new file mode 100644 index 0000000..c14739c --- /dev/null +++ b/R/determine_proportions.R @@ -0,0 +1,76 @@ +#' Determine proportions for categorical variable generation +#' +#' @description +#' Helper function to determine proportions for categorical variables based on +#' priority: explicit parameter > metadata column > uniform distribution +#' +#' @param categories character vector. Category codes/values +#' @param proportions_param Proportions specification. Can be: +#' - NULL: Use uniform distribution +#' - Named list: Maps category codes to proportions +#' - Numeric vector: Proportions in same order as categories +#' @param var_details data.frame. Variable details metadata (may contain proportion column) +#' +#' @return Numeric vector of proportions (normalized to sum to 1), same length as categories +#' +#' @details +#' Priority order: +#' 1. proportions_param if provided (explicit user specification) +#' 2. proportion column in var_details if present +#' 3. Uniform distribution (fallback) +#' +#' @keywords internal +determine_proportions <- function(categories, proportions_param, var_details) { + + # Priority 1: Explicit proportions parameter + if (!is.null(proportions_param)) { + + if (is.list(proportions_param) && !is.null(names(proportions_param))) { + # Named list: validate and reorder to match categories + missing_cats <- setdiff(categories, names(proportions_param)) + if (length(missing_cats) > 0) { + stop("proportions list missing categories: ", + paste(missing_cats, collapse = ", "), + call. = FALSE) + } + + # Extract proportions in category order + probs <- unlist(proportions_param[categories]) + + } else if (is.numeric(proportions_param)) { + # Numeric vector: must match length + if (length(proportions_param) != length(categories)) { + stop("proportions length (", length(proportions_param), + ") must match number of categories (", length(categories), ")", + call. = FALSE) + } + probs <- proportions_param + + } else { + stop("proportions must be a named list or numeric vector", + call. = FALSE) + } + + # Normalize to sum to 1 + probs <- probs / sum(probs) + return(probs) + } + + # Priority 2: proportion column in metadata + if ("proportion" %in% names(var_details) && + any(!is.na(var_details$proportion))) { + + # Extract non-NA proportions + props_from_metadata <- var_details$proportion[!is.na(var_details$proportion)] + + # Only use if length matches categories + if (length(props_from_metadata) == length(categories)) { + probs <- props_from_metadata / sum(props_from_metadata) + return(probs) + } + } + + # Priority 3: Uniform distribution (fallback) + probs <- rep(1 / length(categories), length(categories)) + return(probs) +} diff --git a/R/import_from_recodeflow.R b/R/import_from_recodeflow.R new file mode 100644 index 0000000..e72a5e8 --- /dev/null +++ b/R/import_from_recodeflow.R @@ -0,0 +1,254 @@ +#' Import and convert recodeflow variables and variable details metadata files to MockData configuration format +#' +#' @description +#' Converts recodeflow variables.csv and variable_details.csv files into +#' MockData configuration format (mock_data_config.csv and +#' mock_data_config_details.csv). Filters variables by role and optionally +#' by database. +#' +#' @param variables_path Character. Path to recodeflow variables.csv file. +#' @param variable_details_path Character. Path to recodeflow variable_details.csv file. +#' @param role_filter Character. Role value to filter variables by. Only variables +#' with this role will be imported. Default is "mockdata". Use regex word boundary +#' matching to avoid partial matches (e.g., "mockdata" won't match "mockdata_test"). +#' @param database Character vector or NULL. Database identifier(s) to filter by. +#' If NULL (default), extracts all unique databases from variables.csv databaseStart +#' column. If specified, only imports variables that exist in the specified database(s). +#' @param output_dir Character. Directory where output CSV files will be written. +#' Default is "inst/extdata/". Files will be named mock_data_config.csv and +#' mock_data_config_details.csv. +#' +#' @return Invisible list with two data frames: config and details +#' +#' @details +#' ## Column Mapping +#' +#' ### variables.csv -> mock_data_config.csv +#' Direct copy: variable, role, label, labelLong, section, subject, variableType, +#' units, version, description (to notes) +#' +#' Generated: +#' - uid: v_001, v_002, v_003, ... +#' - position: 10, 20, 30, ... +#' - source_database: extracted from databaseStart based on database filter +#' - source_spec: basename of variables_path +#' - last_updated: current date +#' - seed: NA +#' +#' ### variable_details.csv -> mock_data_config_details.csv +#' Direct copy: variable, dummyVariable, recStart (to recEnd), catStartLabel (to catLabel), +#' catLabelLong, units, notes +#' +#' Generated: +#' - uid: looked up from config by variable name +#' - uid_detail: d_001, d_002, d_003, ... +#' - proportion: left empty for user specification +#' +#' ## Database Filtering +#' When database parameter is specified, the function: +#' 1. Filters variables.csv rows where databaseStart contains the specified database(s) +#' 2. Filters variable_details.csv rows where databaseStart contains the specified database(s) +#' 3. Sets source_database to the filtered database(s) in mock_data_config.csv +#' +#' @examples +#' \dontrun{ +#' # Import all variables with role "mockdata" from all databases +#' import_from_recodeflow( +#' variables_path = "inst/extdata/cchs/variables_cchsflow_sample.csv", +#' variable_details_path = "inst/extdata/cchs/variable_details_cchsflow_sample.csv", +#' role_filter = "mockdata" +#' ) +#' +#' # Import only from specific database +#' import_from_recodeflow( +#' variables_path = "inst/extdata/cchs/variables_cchsflow_sample.csv", +#' variable_details_path = "inst/extdata/cchs/variable_details_cchsflow_sample.csv", +#' role_filter = "mockdata", +#' database = "cchs2015_2016_p" +#' ) +#' +#' # Import from multiple databases +#' import_from_recodeflow( +#' variables_path = "inst/extdata/cchs/variables_cchsflow_sample.csv", +#' variable_details_path = "inst/extdata/cchs/variable_details_cchsflow_sample.csv", +#' role_filter = "mockdata", +#' database = c("cchs2015_2016_p", "cchs2017_2018_p") +#' ) +#' } +#' +#' @export +import_from_recodeflow <- function( + variables_path, + variable_details_path, + role_filter = "mockdata", + database = NULL, + output_dir = "inst/extdata/" +) { + + # Input validation + if (!file.exists(variables_path)) { + stop("variables_path file does not exist: ", variables_path) + } + if (!file.exists(variable_details_path)) { + stop("variable_details_path file does not exist: ", variable_details_path) + } + if (!dir.exists(output_dir)) { + dir.create(output_dir, recursive = TRUE) + message("Created output directory: ", output_dir) + } + + # Read input files + message("Reading variables from: ", variables_path) + variables <- read.csv(variables_path, stringsAsFactors = FALSE, check.names = FALSE) + + message("Reading variable_details from: ", variable_details_path) + variable_details <- read.csv(variable_details_path, stringsAsFactors = FALSE, check.names = FALSE) + + # Validate required columns in variables.csv + required_vars_cols <- c("variable", "role", "variableType", "databaseStart") + missing_vars_cols <- setdiff(required_vars_cols, names(variables)) + if (length(missing_vars_cols) > 0) { + stop("Missing required columns in variables.csv: ", paste(missing_vars_cols, collapse = ", ")) + } + + # Validate required columns in variable_details.csv + required_details_cols <- c("variable", "recStart", "databaseStart") + missing_details_cols <- setdiff(required_details_cols, names(variable_details)) + if (length(missing_details_cols) > 0) { + stop("Missing required columns in variable_details.csv: ", paste(missing_details_cols, collapse = ", ")) + } + + # Filter variables by role (word boundary matching) + role_pattern <- paste0("\\b", role_filter, "\\b") + variables_filtered <- variables[grepl(role_pattern, variables$role, ignore.case = TRUE), ] + + if (nrow(variables_filtered) == 0) { + stop("No variables found with role '", role_filter, "' in variables.csv") + } + + message("Found ", nrow(variables_filtered), " variables with role '", role_filter, "'") + + # Determine database filter + if (is.null(database)) { + # Extract all unique databases from databaseStart + all_databases <- unique(unlist(strsplit(variables_filtered$databaseStart, ",\\s*"))) + database <- all_databases + message("No database specified. Using all databases found: ", paste(database, collapse = ", ")) + } else { + message("Filtering to database(s): ", paste(database, collapse = ", ")) + } + + # Filter variables by database + database_pattern <- paste(database, collapse = "|") + variables_filtered <- variables_filtered[grepl(database_pattern, variables_filtered$databaseStart), ] + + if (nrow(variables_filtered) == 0) { + stop("No variables found for database(s): ", paste(database, collapse = ", ")) + } + + message("After database filtering: ", nrow(variables_filtered), " variables") + + # Filter variable_details by the selected variables AND database + details_filtered <- variable_details[ + variable_details$variable %in% variables_filtered$variable & + grepl(database_pattern, variable_details$databaseStart), + ] + + if (nrow(details_filtered) == 0) { + warning("No detail rows found for filtered variables. This may be expected for continuous variables.") + } else { + message("Found ", nrow(details_filtered), " detail rows for filtered variables") + } + + # Build mock_data_config.csv + message("\nBuilding mock_data_config.csv...") + + config <- data.frame( + uid = paste0("v_", sprintf("%03d", seq_len(nrow(variables_filtered)))), + variable = variables_filtered$variable, + role = variables_filtered$role, + label = if ("label" %in% names(variables_filtered)) variables_filtered$label else NA, + labelLong = if ("labelLong" %in% names(variables_filtered)) variables_filtered$labelLong else NA, + section = if ("section" %in% names(variables_filtered)) variables_filtered$section else NA, + subject = if ("subject" %in% names(variables_filtered)) variables_filtered$subject else NA, + variableType = variables_filtered$variableType, + units = if ("units" %in% names(variables_filtered)) variables_filtered$units else NA, + position = seq(10, by = 10, length.out = nrow(variables_filtered)), + source_database = paste(database, collapse = ", "), + source_spec = basename(variables_path), + version = if ("version" %in% names(variables_filtered)) variables_filtered$version else NA, + last_updated = as.character(Sys.Date()), + notes = if ("description" %in% names(variables_filtered)) variables_filtered$description else NA, + seed = NA, + stringsAsFactors = FALSE + ) + + # Build mock_data_config_details.csv + message("Building mock_data_config_details.csv...") + + if (nrow(details_filtered) > 0) { + # Create uid lookup table + uid_lookup <- setNames(config$uid, config$variable) + + details <- data.frame( + uid = uid_lookup[details_filtered$variable], + uid_detail = paste0("d_", sprintf("%03d", seq_len(nrow(details_filtered)))), + variable = details_filtered$variable, + dummyVariable = if ("dummyVariable" %in% names(details_filtered)) details_filtered$dummyVariable else NA, + recEnd = details_filtered$recStart, # recStart -> recEnd + catLabel = if ("catStartLabel" %in% names(details_filtered)) details_filtered$catStartLabel else NA, + catLabelLong = if ("catLabelLong" %in% names(details_filtered)) details_filtered$catLabelLong else NA, + units = if ("units" %in% names(details_filtered)) details_filtered$units else NA, + proportion = NA, # Leave empty for user specification + value = NA, + range_min = NA, + range_max = NA, + date_start = NA, + date_end = NA, + notes = if ("notes" %in% names(details_filtered)) details_filtered$notes else NA, + stringsAsFactors = FALSE + ) + } else { + # Create empty details file with correct structure + details <- data.frame( + uid = character(0), + uid_detail = character(0), + variable = character(0), + dummyVariable = character(0), + recEnd = character(0), + catLabel = character(0), + catLabelLong = character(0), + units = character(0), + proportion = numeric(0), + value = numeric(0), + range_min = numeric(0), + range_max = numeric(0), + date_start = character(0), + date_end = character(0), + notes = character(0), + stringsAsFactors = FALSE + ) + } + + # Write output files + config_path <- file.path(output_dir, "mock_data_config.csv") + details_path <- file.path(output_dir, "mock_data_config_details.csv") + + message("\nWriting output files...") + message(" ", config_path) + write.csv(config, config_path, row.names = FALSE, na = "") + + message(" ", details_path) + write.csv(details, details_path, row.names = FALSE, na = "") + + message("\nImport complete!") + message(" Variables imported: ", nrow(config)) + message(" Detail rows imported: ", nrow(details)) + message("\nNext steps:") + message(" 1. Review ", config_path) + message(" 2. Review ", details_path) + message(" 3. Fill in 'proportion' values in details file (must sum to 1.0 per variable)") + message(" 4. Add any additional distribution parameters (mean, sd, range_min, range_max, etc.)") + + invisible(list(config = config, details = details)) +} diff --git a/R/mockdata-helpers.R b/R/mockdata-helpers.R deleted file mode 100644 index ffe2693..0000000 --- a/R/mockdata-helpers.R +++ /dev/null @@ -1,422 +0,0 @@ -# ============================================================================== -# MockData Metadata Helpers -# ============================================================================== -# Functions for querying and filtering recodeflow metadata (variables.csv and -# variable_details.csv) to support mock data generation -# -# These helpers work with any recodeflow project's metadata structure -# ============================================================================== - -#' Get list of variables used in a specific database/cycle -#' -#' Returns a data frame containing all variables that are available in a -#' specified database/cycle, with their metadata and extracted raw variable names. -#' -#' @param cycle Character string specifying the database/cycle (e.g., "cycle1", -#' "cycle1_meds" for CHMS; "cchs2001", "cchs2017_p" for CCHS). -#' @param variables Data frame from variables.csv containing variable metadata. -#' @param variable_details Data frame from variable_details.csv containing detailed recoding specifications. -#' @param include_derived Logical. Should derived variables be included? Default is TRUE. -#' -#' @return Data frame with columns: -#' \itemize{ -#' \item variable - Harmonized variable name -#' \item variable_raw - Raw source variable name (extracted from variableStart) -#' \item label - Human-readable label -#' \item variableType - "Categorical" or "Continuous" -#' \item databaseStart - Which databases/cycles the variable appears in -#' \item variableStart - Original variableStart string (for reference) -#' } -#' -#' Returns empty data frame if no variables found for the database/cycle. -#' -#' @details -#' The function filters variables.csv by checking if the database/cycle appears -#' in the `databaseStart` field (exact match), then uses \code{\link{parse_variable_start}} -#' to extract the raw variable name from the `variableStart` field. -#' -#' **Important**: Uses exact matching to avoid false positives (e.g., "cycle1" -#' should not match "cycle1_meds"). -#' -#' Derived variables (those with "DerivedVar::" in variableStart) return NA for -#' variable_raw since they require custom derivation logic. -#' -#' @examples -#' \dontrun{ -#' # Load metadata -#' variables <- read.csv("inst/extdata/variables.csv") -#' variable_details <- read.csv("inst/extdata/variable-details.csv") -#' -#' # CHMS example -#' cycle1_vars <- get_cycle_variables("cycle1", variables, variable_details) -#' -#' # CCHS example -#' cchs2001_vars <- get_cycle_variables("cchs2001", variables, variable_details) -#' -#' # Exclude derived variables -#' cycle1_original <- get_cycle_variables("cycle1", variables, variable_details, -#' include_derived = FALSE) -#' } -#' -#' @seealso \code{\link{parse_variable_start}} -#' -#' @export -get_cycle_variables <- function(cycle, variables, variable_details, - include_derived = TRUE) { - # Basic validation - if (is.null(cycle) || cycle == "") { - return(data.frame( - variable = character(), - variable_raw = character(), - label = character(), - variableType = character(), - databaseStart = character(), - variableStart = character(), - stringsAsFactors = FALSE - )) - } - - # Filter variables by cycle using EXACT match - # Split databaseStart by comma and check for exact cycle match - # This prevents "cycle1" from matching "cycle1_meds" - cycle_vars <- variables[sapply(variables$databaseStart, function(db_start) { - cycles <- strsplit(db_start, ",")[[1]] - cycles <- trimws(cycles) - cycle %in% cycles - }), ] - - # If no variables found, return empty data frame - if (nrow(cycle_vars) == 0) { - return(data.frame( - variable = character(), - variable_raw = character(), - label = character(), - variableType = character(), - databaseStart = character(), - variableStart = character(), - stringsAsFactors = FALSE - )) - } - - # Extract raw variable names using parse_variable_start - cycle_vars$variable_raw <- sapply(cycle_vars$variableStart, function(vs) { - raw_name <- parse_variable_start(vs, cycle) - if (is.null(raw_name)) return(NA_character_) - return(raw_name) - }) - - # Filter out derived variables if requested - if (!include_derived) { - cycle_vars <- cycle_vars[!grepl("DerivedVar::", cycle_vars$variableStart, fixed = TRUE), ] - } - - # Select and return relevant columns - result <- data.frame( - variable = cycle_vars$variable, - variable_raw = cycle_vars$variable_raw, - label = cycle_vars$label, - variableType = cycle_vars$variableType, - databaseStart = cycle_vars$databaseStart, - variableStart = cycle_vars$variableStart, - stringsAsFactors = FALSE - ) - - return(result) -} - -#' Get list of unique raw variables for a database/cycle -#' -#' Returns a data frame of unique raw (source) variables that should be generated -#' for a specific database/cycle. This is the correct approach for generating mock -#' data, as we want to create the raw source data, not the harmonized variables. -#' -#' @param cycle Character string specifying the database/cycle (e.g., "cycle1", -#' "cycle1_meds" for CHMS; "cchs2001" for CCHS). -#' @param variables Data frame from variables.csv containing variable metadata. -#' @param variable_details Data frame from variable_details.csv containing detailed specifications. -#' @param include_derived Logical. Should derived variables be included? Default is FALSE -#' (since derived variables are computed from other variables, not in raw data). -#' -#' @return Data frame with columns: -#' \itemize{ -#' \item variable_raw - Raw source variable name (unique) -#' \item variableType - "Categorical" or "Continuous" -#' \item harmonized_vars - Comma-separated list of harmonized variables that use this raw variable -#' \item n_harmonized - Count of how many harmonized variables use this raw variable -#' } -#' -#' @details -#' This function: -#' \enumerate{ -#' \item Gets all variables available in the database/cycle using \code{\link{get_cycle_variables}} -#' \item Extracts unique raw variable names -#' \item Groups harmonized variables by their raw source -#' \item Returns one row per unique raw variable -#' } -#' -#' This is the correct approach because: -#' \itemize{ -#' \item Mock data should represent raw source data (before harmonization) -#' \item Each raw variable should appear exactly once -#' \item Multiple harmonized variables can derive from the same raw variable -#' } -#' -#' @examples -#' \dontrun{ -#' # Load metadata -#' variables <- read.csv("inst/extdata/variables.csv") -#' variable_details <- read.csv("inst/extdata/variable-details.csv") -#' -#' # CHMS example -#' raw_vars <- get_raw_variables("cycle1", variables, variable_details) -#' -#' # CCHS example -#' raw_vars_cchs <- get_raw_variables("cchs2001", variables, variable_details) -#' -#' # Generate mock data from raw variables -#' for (i in 1:nrow(raw_vars)) { -#' var_raw <- raw_vars$variable_raw[i] -#' var_type <- raw_vars$variableType[i] -#' # Generate the raw variable... -#' } -#' } -#' -#' @seealso \code{\link{get_cycle_variables}}, \code{\link{parse_variable_start}} -#' -#' @export -get_raw_variables <- function(cycle, variables, variable_details, - include_derived = FALSE) { - # Get all cycle variables (harmonized) - cycle_vars <- get_cycle_variables(cycle, variables, variable_details, - include_derived = include_derived) - - # Remove rows with NA raw variable names (e.g., DerivedVar that couldn't be parsed) - cycle_vars <- cycle_vars[!is.na(cycle_vars$variable_raw), ] - - # If no variables, return empty data frame - if (nrow(cycle_vars) == 0) { - return(data.frame( - variable_raw = character(), - variableType = character(), - harmonized_vars = character(), - n_harmonized = integer(), - stringsAsFactors = FALSE - )) - } - - # Group by raw variable name - # For each unique raw variable, collect the harmonized variables that use it - raw_var_list <- unique(cycle_vars$variable_raw) - - result <- lapply(raw_var_list, function(raw_var) { - # Find all harmonized variables that map to this raw variable - matching_rows <- cycle_vars[cycle_vars$variable_raw == raw_var, ] - - # Get variable type (should be same for all harmonized vars using this raw var) - var_type <- matching_rows$variableType[1] - - # Get list of harmonized variable names - harmonized_list <- matching_rows$variable - - data.frame( - variable_raw = raw_var, - variableType = var_type, - harmonized_vars = paste(harmonized_list, collapse = ", "), - n_harmonized = length(harmonized_list), - stringsAsFactors = FALSE - ) - }) - - # Combine into single data frame - result_df <- do.call(rbind, result) - - # Sort by variable name for consistency - result_df <- result_df[order(result_df$variable_raw), ] - rownames(result_df) <- NULL - - return(result_df) -} - -#' Get variable details for a raw variable in a specific database/cycle -#' -#' Retrieves all variable_details rows for a given raw variable name and database/cycle. -#' This is useful when you have a raw variable name (from the source data) and need -#' to find all the harmonized variables and their recoding specifications. -#' -#' @param var_raw Character. The raw variable name (as it appears in source data) -#' @param cycle Character. The database/cycle identifier (e.g., "cycle1", "cchs2001") -#' @param variable_details Data frame. The complete variable_details data frame -#' @param variables Data frame. Optional. The variables data frame (for validation) -#' -#' @return Data frame with variable_details rows for this raw variable + cycle. -#' Returns empty data frame if not found. -#' -#' @details -#' This function searches variable_details for rows where: -#' - variableStart contains the raw variable name (in any format: database::name, [name], or plain name) -#' - databaseStart contains the cycle identifier -#' -#' The function handles multiple recodeflow metadata formats: -#' - Database-prefixed: "cycle1::clc_age", "cchs2001::HGT_CM" -#' - Bracket format: "[clc_age]" -#' - Plain format: "clc_age" -#' -#' @examples -#' \dontrun{ -#' # CHMS: Get all harmonized variables derived from raw variable "clc_age" in cycle1 -#' details <- get_variable_details_for_raw("clc_age", "cycle1", variable_details) -#' -#' # CCHS: Get harmonized variables from "HGT_CM" in cchs2001 -#' details_cchs <- get_variable_details_for_raw("HGT_CM", "cchs2001", variable_details) -#' -#' # This might return multiple rows for different harmonized variables -#' } -#' -#' @keywords internal -get_variable_details_for_raw <- function(var_raw, cycle, variable_details, variables = NULL) { - if (is.null(var_raw) || is.null(cycle) || var_raw == "" || cycle == "") { - return(data.frame( - variable = character(), - variableStart = character(), - databaseStart = character(), - variableType = character(), - recStart = character(), - recEnd = character(), - stringsAsFactors = FALSE - )) - } - - # Strategy 1: Find by database-prefixed format (cycle::var_raw) - cycle_pattern <- paste0(cycle, "::", var_raw) - matches <- variable_details[grepl(cycle_pattern, variable_details$variableStart, fixed = TRUE), ] - - # Strategy 2: Find by bracket format ([var_raw]) with databaseStart filtering - if (nrow(matches) == 0) { - bracket_pattern <- paste0("[", var_raw, "]") - bracket_matches <- variable_details[grepl(bracket_pattern, variable_details$variableStart, fixed = TRUE), ] - - if (nrow(bracket_matches) > 0) { - # Filter by databaseStart to ensure correct cycle - bracket_matches <- bracket_matches[grepl(cycle, bracket_matches$databaseStart, fixed = TRUE), ] - matches <- bracket_matches - } - } - - # Strategy 3: Find by plain format (var_raw) with strict filtering - if (nrow(matches) == 0) { - # Only match if variableStart is EXACTLY the var_raw (no :: or [] or Func:: or DerivedVar::) - plain_matches <- variable_details[ - variable_details$variableStart == var_raw & - grepl(cycle, variable_details$databaseStart, fixed = TRUE), ] - - matches <- plain_matches - } - - # Return matches - return(matches) -} - -#' Extract categories from variable details -#' -#' Extracts categorical values (labels) from variable_details recStart/recEnd columns, -#' handling recodeflow-standard range notation, special codes, and NA patterns. -#' -#' @param var_details Data frame. Filtered variable_details rows for specific variable + cycle -#' @param include_na Logical. If TRUE, return NA codes (recEnd contains "NA"). -#' If FALSE, return regular labels. -#' -#' @return Character vector of category values (expanded from ranges if needed) -#' -#' @details -#' This function handles recodeflow-standard notation: -#' - Simple category values: "1", "2", "3" -#' - Integer ranges: "[7,9]" → c("7", "8", "9") -#' - Continuous ranges: "[18.5,25)" → kept as single value for continuous vars -#' - Special codes: "copy", "else", "NA::a", "NA::b" -#' - Function calls: "Func::function_name" -#' -#' Uses parse_range_notation() for robust range handling. -#' -#' @examples -#' \dontrun{ -#' # Get regular categories (non-NA) -#' categories <- get_variable_categories(var_details, include_na = FALSE) -#' -#' # Get NA codes -#' na_codes <- get_variable_categories(var_details, include_na = TRUE) -#' } -#' -#' @keywords internal -get_variable_categories <- function(var_details, include_na = FALSE) { - if (nrow(var_details) == 0) { - return(character(0)) - } - - # Filter based on whether we want NA codes or regular labels - if (include_na) { - # Get rows where recEnd contains "NA" - rows <- var_details[grepl("NA", var_details$recEnd, fixed = TRUE), ] - } else { - # Get rows where recEnd does NOT contain "NA" - rows <- var_details[!grepl("NA", var_details$recEnd, fixed = TRUE), ] - } - - if (nrow(rows) == 0) { - return(character(0)) - } - - # Extract recStart values - rec_start_values <- rows$recStart - - # Process each value through parse_range_notation - all_values <- character(0) - - for (value in rec_start_values) { - if (is.na(value) || value == "") { - next - } - - parsed <- parse_range_notation(value) - - if (is.null(parsed)) { - # If parsing failed, use raw value - all_values <- c(all_values, as.character(value)) - next - } - - # Handle different parsed types - if (parsed$type == "integer") { - # For integer ranges, use the expanded values - if (!is.null(parsed$values)) { - all_values <- c(all_values, as.character(parsed$values)) - } else { - # If values not expanded, just use min-max representation - all_values <- c(all_values, as.character(value)) - } - - } else if (parsed$type == "single_value") { - # Single numeric value - all_values <- c(all_values, as.character(parsed$value)) - - } else if (parsed$type == "continuous") { - # For continuous ranges, keep as-is (don't expand) - # These will be used for continuous variable generation - all_values <- c(all_values, as.character(value)) - - } else if (parsed$type == "special") { - # Special codes: copy, else, NA::a, NA::b - all_values <- c(all_values, parsed$value) - - } else if (parsed$type == "function") { - # Function calls: Func::function_name - all_values <- c(all_values, parsed$value) - - } else { - # Unknown type, use raw value - all_values <- c(all_values, as.character(value)) - } - } - - # Return unique values - return(unique(all_values)) -} diff --git a/R/mockdata-parsers.R b/R/mockdata-parsers.R index 38a111f..77ec7e9 100644 --- a/R/mockdata-parsers.R +++ b/R/mockdata-parsers.R @@ -11,8 +11,8 @@ #' #' This function parses the `variableStart` field from variable_details metadata #' and extracts the raw variable name for a specific database/cycle. It supports -#' recodeflow-standard formats: database-prefixed ("database::varname"), -#' bracket ("[varname]"), mixed, and plain formats. +#' recodeflow-standard formats: database-prefixed (`"database::varname"`), +#' bracket (`"[varname]"`), mixed, and plain formats. #' #' @param variable_start Character string from variableStart field. Can contain #' multiple database specifications separated by commas (e.g., "cycle1::age, cycle2::AGE"). @@ -23,13 +23,13 @@ #' @details #' The function implements recodeflow-standard parsing strategies: #' \enumerate{ -#' \item Database-prefixed format: "database::varname" - for database-specific names -#' \item Bracket format (whole string): "[varname]" - for database-agnostic names -#' \item Bracket format (segment): "database1::var1, [var2]" - [var2] is DEFAULT for other databases -#' \item Plain format: "varname" - uses value as-is +#' \item Database-prefixed format: `"database::varname"` - for database-specific names +#' \item Bracket format (whole string): `"[varname]"` - for database-agnostic names +#' \item Bracket format (segment): `"database1::var1, [var2]"` - `[var2]` is DEFAULT for other databases +#' \item Plain format: `"varname"` - uses value as-is #' } #' -#' **Important**: [variable] represents the DEFAULT for all databases not explicitly +#' **Important**: `[variable]` represents the DEFAULT for all databases not explicitly #' referenced with database:: notation. This reduces repetition when only one or a #' few databases use different variable names. #' @@ -56,6 +56,7 @@ #' parse_variable_start("cycle2::age", "cycle1") #' # Returns: NULL #' +#' @family parsing-utilities #' @export parse_variable_start <- function(variable_start, cycle) { # Basic validation @@ -170,6 +171,7 @@ parse_variable_start <- function(variable_start, cycle) { #' parse_range_notation("else") # Returns: list(type="special", value="else") #' #' @note Adapted from cchsflow v4.0.0 (2025-07-27) - universal across recodeflow projects +#' @family parsing-utilities #' @export parse_range_notation <- function(range_string, range_type = "auto", expand_integers = TRUE) { # Handle NULL, NA, or empty inputs diff --git a/R/mockdata_helpers.R b/R/mockdata_helpers.R new file mode 100644 index 0000000..8d97fd3 --- /dev/null +++ b/R/mockdata_helpers.R @@ -0,0 +1,988 @@ +# ============================================================================== +# MockData Helper Functions +# ============================================================================== +# DRY utilities for create_* functions +# +# These helpers centralize common operations across all variable generators: +# - Proportion extraction and validation +# - Missing code application +# - Contamination model (make_garbage!) +# - Distribution parameter extraction +# - Variable details filtering +# +# Note: Leverages parse_range_notation() from mockdata-parsers.R +# ============================================================================== + + +# 1. VARIABLE DETAILS OPERATIONS ==== + +#' Get variable details for specific variable +#' +#' Filters details data frame to return only rows for a specific variable. +#' Handles NULL details (fallback mode) and provides consistent sorting. +#' +#' @param details Data frame. Full details data (or NULL for fallback mode). +#' @param variable_name Character. Variable name to filter (e.g., "ADL_01"). +#' @param uid Character. Alternative - filter by uid (e.g., "v_001"). +#' +#' @return Subset of details rows for this variable, sorted by uid_detail. +#' Returns NULL if details is NULL (signals fallback mode). +#' Returns empty data frame with warning if no matching rows. +#' +#' @examples +#' \dontrun{ +#' details <- read_mock_data_config_details("details.csv") +#' var_details <- get_variable_details(details, variable_name = "ADL_01") +#' +#' # Fallback mode +#' var_details <- get_variable_details(NULL, variable_name = "ADL_01") +#' # Returns: NULL +#' } +#' +#' @family mockdata-helpers +#' @export +get_variable_details <- function(details, variable_name = NULL, uid = NULL) { + # Handle NULL details (fallback mode) + if (is.null(details)) { + return(NULL) + } + + # Validate inputs + if (is.null(variable_name) && is.null(uid)) { + stop("Must provide either variable_name or uid") + } + + # Filter by variable_name or uid + if (!is.null(variable_name)) { + subset <- details[details$variable == variable_name, ] + } else { + subset <- details[details$uid == uid, ] + } + + # Warn if no matches + if (nrow(subset) == 0) { + search_term <- if (!is.null(variable_name)) variable_name else uid + warning("No details found for variable: ", search_term) + return(subset) # Empty data frame with same structure + } + + # Sort by uid_detail for consistent ordering + if ("uid_detail" %in% names(subset)) { + subset <- subset[order(subset$uid_detail), ] + } + + return(subset) +} + + +# 2. PROPORTION OPERATIONS ==== + +#' Extract proportions from details subset +#' +#' Parses proportion column and organizes by type (valid, missing, garbage). +#' Validates that valid + missing proportions sum to 1.0 (±0.001 tolerance). +#' Auto-normalizes with warning if sum != 1.0. +#' +#' @param details_subset Data frame. Rows from details for one variable. +#' @param variable_name Character. Variable name for error messages. +#' +#' @return Named list with: +#' - valid: Numeric. Proportion for valid values (sum of all non-missing, non-garbage) +#' - missing: Named list. Proportion for each missing code (e.g., "7" = 0.03) +#' - garbage: Named list. Proportion for each garbage type (e.g., corrupt_low = 0.02) +#' - categories: Character vector. All non-garbage recEnd values +#' - category_proportions: Numeric vector. Proportions for sampling (aligned with categories) +#' +#' @details +#' Population proportions (valid + missing) must sum to 1.0. Garbage proportions +#' are separate and applied to valid values only. +#' +#' If proportions are NA or missing, returns uniform probabilities. +#' +#' @examples +#' \dontrun{ +#' details <- read_mock_data_config_details("details.csv") +#' details_subset <- details[details$variable == "ADL_01", ] +#' props <- extract_proportions(details_subset, "ADL_01") +#' # Returns: list(valid = 0.92, missing = list("7" = 0.03, "9" = 0.05), ...) +#' } +#' +#' @family mockdata-helpers +#' @export +extract_proportions <- function(details_subset, variable_name = "variable") { + # Handle NULL or empty details + if (is.null(details_subset) || nrow(details_subset) == 0) { + return(list( + valid = 1.0, + missing = list(), + garbage = list(), + categories = character(0), + category_proportions = numeric(0) + )) + } + + # Identify garbage rows (exclude from population sum) + is_garbage_row <- grepl("^corrupt_", details_subset$recEnd, ignore.case = TRUE) + + # Identify "else" rows - these are harmonization rules, not raw data values + # Skip "else" entirely - we can't predict what garbage values it represents + # Similar to v0.1 fix in get_variable_categories() + is_else <- details_subset$recEnd == "else" + + # Split into population (valid + missing) and garbage + # Exclude both garbage AND "else" from population + pop_rows <- details_subset[!is_garbage_row & !is_else, ] + garbage_rows <- details_subset[is_garbage_row, ] + + # Extract population proportions + pop_proportions <- pop_rows$proportion + has_proportions <- !all(is.na(pop_proportions)) + + if (!has_proportions) { + # Uniform distribution if no proportions specified + n_categories <- nrow(pop_rows) + pop_proportions <- rep(1.0 / n_categories, n_categories) + } else { + # Validate and auto-normalize + prop_sum <- sum(pop_proportions, na.rm = TRUE) + tolerance <- 0.001 + + if (abs(prop_sum - 1.0) > tolerance) { + warning("Proportions for variable '", variable_name, "' sum to ", + round(prop_sum, 4), " (expected 1.0). Auto-normalizing.") + norm_factor <- 1.0 / prop_sum + pop_proportions <- pop_proportions * norm_factor + } + } + + # Separate missing codes from valid + # Common missing code patterns: numeric codes 7,8,9,96,97,98,99,996,997,998,999 + # Or ranges like [7,9], [997,999] + is_missing <- grepl("^\\[?[0-9]+", pop_rows$recEnd) & + (grepl("7|8|9", pop_rows$recEnd) | pop_rows$catLabelLong == "missing") + + # Build results + # Categories should ONLY include valid (non-missing) rows + valid_rows <- pop_rows[!is_missing, ] + missing_rows <- pop_rows[is_missing, ] + + result <- list( + valid = sum(pop_proportions[!is_missing], na.rm = TRUE), + missing = list(), + garbage = list(), + categories = valid_rows$recEnd, + category_proportions = pop_proportions[!is_missing] + ) + + # Normalize category proportions to sum to 1.0 + if (length(result$category_proportions) > 0 && result$valid > 0) { + result$category_proportions <- result$category_proportions / result$valid + } + + # Add missing codes + if (nrow(missing_rows) > 0) { + result$missing <- as.list(setNames(pop_proportions[is_missing], missing_rows$recEnd)) + } + + # Extract garbage proportions + if (nrow(garbage_rows) > 0) { + garbage_props <- garbage_rows$proportion + garbage_names <- garbage_rows$recEnd + result$garbage <- as.list(setNames(garbage_props, garbage_names)) + } + + return(result) +} + + +#' Sample with proportions +#' +#' Generates category assignments with specified proportions. +#' Handles NA proportions (uniform fallback) and validates inputs. +#' +#' @param categories Character or numeric vector. Category values. +#' @param proportions Numeric vector. Proportions (same length, sum to 1.0). +#' @param n Integer. Number of samples. +#' @param seed Integer. Optional random seed. +#' +#' @return Vector of length n with category assignments. +#' +#' @examples +#' \dontrun{ +#' categories <- c("1", "2", "7", "9") +#' proportions <- c(0.4, 0.52, 0.03, 0.05) +#' assignments <- sample_with_proportions(categories, proportions, n = 1000) +#' } +#' +#' @family mockdata-helpers +#' @export +sample_with_proportions <- function(categories, proportions, n, seed = NULL) { + # Set seed if provided + if (!is.null(seed)) { + set.seed(seed) + } + + # Validate inputs + if (length(categories) != length(proportions)) { + stop("categories and proportions must have same length") + } + + # Handle NA proportions - use uniform + if (all(is.na(proportions))) { + proportions <- rep(1.0 / length(categories), length(categories)) + } + + # Normalize if sum != 1.0 + prop_sum <- sum(proportions, na.rm = TRUE) + if (abs(prop_sum - 1.0) > 0.001) { + proportions <- proportions / prop_sum + } + + # Sample + sample(categories, size = n, replace = TRUE, prob = proportions) +} + + +# 3. DISTRIBUTION PARAMETERS ==== + +#' Extract distribution parameters from details +#' +#' Extracts distribution-specific parameters (mean, sd, rate, shape, range) from +#' details subset. Auto-detects distribution type if not specified. +#' +#' @param details_subset Data frame. Rows from details for one variable. +#' @param distribution_type Character. Optional ("normal", "uniform", "gompertz", +#' "exponential", "poisson"). If NULL, attempts auto-detection. +#' +#' @return Named list with distribution type and parameters: +#' - distribution: Character. Distribution type. +#' - mean, sd: Numeric. For normal distribution. +#' - rate, shape: Numeric. For Gompertz/exponential. +#' - range_min, range_max: Numeric. For uniform or truncation. +#' +#' @examples +#' \dontrun{ +#' params <- extract_distribution_params(details_subset, "normal") +#' # Returns: list(distribution = "normal", mean = 25, sd = 5, range_min = 18.5, range_max = 40) +#' } +#' +#' @family mockdata-helpers +#' @export +extract_distribution_params <- function(details_subset, distribution_type = NULL) { + # Handle NULL or empty details + if (is.null(details_subset) || nrow(details_subset) == 0) { + return(list(distribution = "uniform", range_min = 0, range_max = 100)) + } + + # Auto-detect distribution type if not specified + if (is.null(distribution_type)) { + has_mean <- "mean" %in% details_subset$recEnd + has_sd <- "sd" %in% details_subset$recEnd + has_rate <- "rate" %in% details_subset$recEnd + has_shape <- "shape" %in% details_subset$recEnd + + if (has_mean && has_sd) { + distribution_type <- "normal" + } else if (has_rate && has_shape) { + distribution_type <- "gompertz" + } else if (has_rate) { + distribution_type <- "exponential" + } else { + distribution_type <- "uniform" + } + } + + # Extract parameters based on distribution type + result <- list(distribution = distribution_type) + + # Extract mean and sd (for normal) + if ("mean" %in% details_subset$recEnd) { + mean_row <- details_subset[details_subset$recEnd == "mean", ] + result$mean <- as.numeric(mean_row$value[1]) + } + + if ("sd" %in% details_subset$recEnd) { + sd_row <- details_subset[details_subset$recEnd == "sd", ] + result$sd <- as.numeric(sd_row$value[1]) + } + + # Extract rate and shape (for Gompertz/exponential) + if ("rate" %in% details_subset$recEnd) { + rate_row <- details_subset[details_subset$recEnd == "rate", ] + result$rate <- as.numeric(rate_row$value[1]) + } + + if ("shape" %in% details_subset$recEnd) { + shape_row <- details_subset[details_subset$recEnd == "shape", ] + result$shape <- as.numeric(shape_row$value[1]) + } + + # Extract range (for uniform or truncation) + # First try explicit range_min/range_max columns (if they exist) + if ("range_min" %in% names(details_subset)) { + range_min_values <- details_subset$range_min[!is.na(details_subset$range_min)] + if (length(range_min_values) > 0) { + result$range_min <- min(range_min_values) + } + } + + if ("range_max" %in% names(details_subset)) { + range_max_values <- details_subset$range_max[!is.na(details_subset$range_max)] + if (length(range_max_values) > 0) { + result$range_max <- max(range_max_values) + } + } + + # If no explicit range columns, parse from recStart (for v0.2 format) + if (is.null(result$range_min) || is.null(result$range_max)) { + if ("recStart" %in% names(details_subset)) { + # Filter for valid data rows only (recEnd = "copy" or distribution params) + # Exclude missing codes, garbage codes, and other special codes + valid_rows <- details_subset[ + details_subset$recEnd == "copy" | + details_subset$recEnd %in% c("mean", "sd", "rate", "shape"), + ] + + if (nrow(valid_rows) > 0) { + rec_start_values <- valid_rows$recStart + + all_mins <- c() + all_maxs <- c() + + for (value in rec_start_values) { + if (is.na(value) || value == "") next + + parsed <- parse_range_notation(value) + + if (!is.null(parsed) && parsed$type %in% c("integer", "continuous", "single_value")) { + all_mins <- c(all_mins, parsed$min) + all_maxs <- c(all_maxs, parsed$max) + } + } + + if (length(all_mins) > 0 && length(all_maxs) > 0) { + if (is.null(result$range_min)) result$range_min <- min(all_mins) + if (is.null(result$range_max)) result$range_max <- max(all_maxs) + } + } + } + } + + # Validate required parameters + if (distribution_type == "normal") { + if (is.null(result$mean) || is.null(result$sd)) { + stop("Normal distribution requires mean and sd parameters") + } + } + + return(result) +} + + +# 4. MISSING CODE APPLICATION ==== + +#' Apply missing codes to values +#' +#' Replaces category assignments with actual missing code values (7, 8, 9, etc.). +#' Handles different data types (numeric, Date, character). +#' +#' @param values Vector. Generated values (numeric, date, or categorical). +#' @param category_assignments Vector. Category assignments ("valid", "7", "8", "9", etc.). +#' @param missing_code_map Named list. Maps category names to codes (e.g., list("7" = 7, "9" = 9)). +#' +#' @return Vector with missing codes applied. +#' +#' @examples +#' \dontrun{ +#' values <- c(23.5, 45.2, 18.9, 30.1, 25.6) +#' assignments <- c("valid", "valid", "7", "valid", "9") +#' missing_map <- list("7" = 7, "9" = 9) +#' result <- apply_missing_codes(values, assignments, missing_map) +#' # Returns: c(23.5, 45.2, 7, 30.1, 9) +#' } +#' +#' @family mockdata-helpers +#' @export +apply_missing_codes <- function(values, category_assignments, missing_code_map) { + # Handle NULL or empty inputs + if (is.null(values) || length(values) == 0) { + return(values) + } + + if (is.null(missing_code_map) || length(missing_code_map) == 0) { + return(values) + } + + # Apply missing codes + for (code_name in names(missing_code_map)) { + code_value <- missing_code_map[[code_name]] + missing_idx <- which(category_assignments == code_name) + + if (length(missing_idx) > 0) { + # Handle type coercion if needed + if (inherits(values, "Date") && is.numeric(code_value)) { + # Convert Date to numeric for missing codes + values <- as.numeric(values) + } + + # If code_value is a vector (e.g., c(997, 998, 999)), sample from it + if (length(code_value) > 1) { + values[missing_idx] <- sample(code_value, length(missing_idx), replace = TRUE) + } else { + values[missing_idx] <- code_value + } + } + } + + return(values) +} + + +# 5. GARBAGE (MAKE GARBAGE!) ==== + +#' Check if garbage is specified +#' +#' Quick check for presence of garbage rows (recEnd starts with "corrupt_"). +#' +#' @param details_subset Data frame. Rows from details for one variable. +#' +#' @return Logical. TRUE if garbage rows exist, FALSE otherwise. +#' +#' @examples +#' \dontrun{ +#' if (has_garbage(details_subset)) { +#' values <- make_garbage(values, details_subset, "continuous") +#' } +#' } +#' +#' @family mockdata-helpers +#' @export +has_garbage <- function(details_subset) { + if (is.null(details_subset) || nrow(details_subset) == 0) { + return(FALSE) + } + + any(grepl("^corrupt_", details_subset$recEnd, ignore.case = TRUE)) +} + + +#' Make garbage +#' +#' Applies garbage model to introduce realistic data quality issues. +#' Replaces some valid values with implausible values (corrupt_low, corrupt_high, +#' corrupt_future, etc.). +#' +#' @param values Vector. Generated values (already has valid + missing). +#' @param details_subset Data frame. Rows from details (contains corrupt_* rows). +#' @param variable_type Character. "categorical", "continuous", "date", "survival". +#' @param seed Integer. Optional random seed. +#' +#' @return Vector with garbage applied. +#' +#' @details +#' Two-step garbage model: +#' 1. Identify valid value indices (not missing codes) +#' 2. Sample from valid indices based on garbage proportions +#' 3. Replace with garbage values +#' 4. Ensure no overlap (use setdiff for sequential garbage application) +#' +#' Garbage types: +#' - corrupt_low: Values below valid range (continuous, integer) +#' - corrupt_high: Values above valid range (continuous, integer) +#' - corrupt_future: Future dates (date, survival) +#' +#' @examples +#' \dontrun{ +#' values <- c(23.5, 45.2, 7, 30.1, 9, 18.9, 25.6) +#' result <- make_garbage(values, details_subset, "continuous", seed = 123) +#' # Some valid values replaced with implausible values +#' } +#' +#' @family mockdata-helpers +#' @export +make_garbage <- function(values, details_subset, variable_type, seed = NULL) { + # Set seed if provided + if (!is.null(seed)) { + set.seed(seed) + } + + # Check if garbage specified + if (!has_garbage(details_subset)) { + return(values) + } + + # Extract garbage rows + garbage_rows <- details_subset[grepl("^corrupt_", details_subset$recEnd, ignore.case = TRUE), ] + + if (nrow(garbage_rows) == 0) { + return(values) + } + + # Identify valid indices (exclude missing codes like 7, 8, 9, 996, 997, etc.) + # Assume missing codes are numeric values in specific ranges + is_missing <- values %in% c(7, 8, 9, 96, 97, 98, 99, 996, 997, 998, 999) + valid_idx <- which(!is_missing & !is.na(values)) + + if (length(valid_idx) == 0) { + return(values) # No valid values to make garbage + } + + # Apply each garbage type sequentially + remaining_idx <- valid_idx + + for (i in seq_len(nrow(garbage_rows))) { + garbage_row <- garbage_rows[i, ] + garbage_type <- garbage_row$recEnd + garbage_prop <- garbage_row$proportion + + # Skip if proportion is NA or 0 + if (is.na(garbage_prop) || garbage_prop == 0) { + next + } + + # Calculate number to make garbage + n_valid <- length(valid_idx) + n_garbage <- round(n_valid * garbage_prop) + + if (n_garbage == 0 || length(remaining_idx) == 0) { + next + } + + # Sample indices to make garbage (without replacement) + n_garbage <- min(n_garbage, length(remaining_idx)) + garbage_idx <- sample(remaining_idx, n_garbage) + + # Generate garbage values + garbage_values <- generate_garbage_values(garbage_type, garbage_row, variable_type, n_garbage) + + # Apply garbage + values[garbage_idx] <- garbage_values + + # Remove garbage indices from remaining pool (no overlap) + remaining_idx <- setdiff(remaining_idx, garbage_idx) + } + + return(values) +} + + +#' Generate garbage values +#' +#' Generates implausible values for garbage based on type. +#' Helper function for make_garbage(). +#' +#' @param garbage_type Character. "corrupt_low", "corrupt_high", "corrupt_future", etc. +#' @param garbage_row Data frame row. Contains range_min, range_max for garbage. +#' @param variable_type Character. "continuous", "date", etc. +#' @param n Integer. Number of values to generate. +#' +#' @return Vector of garbage values. +#' +#' @family mockdata-helpers +#' @export +generate_garbage_values <- function(garbage_type, garbage_row, variable_type, n) { + # Extract garbage range + # First try explicit range_min/range_max columns (v0.1 format) + range_min <- if ("range_min" %in% names(garbage_row)) garbage_row$range_min else NA + range_max <- if ("range_max" %in% names(garbage_row)) garbage_row$range_max else NA + + # If no explicit range columns, parse from recStart (v0.2 format) + if (is.na(range_min) || is.na(range_max)) { + if ("recStart" %in% names(garbage_row)) { + rec_start <- garbage_row$recStart + if (!is.na(rec_start) && rec_start != "") { + parsed <- parse_range_notation(rec_start) + if (!is.null(parsed) && parsed$type %in% c("integer", "continuous", "single_value")) { + range_min <- parsed$min + range_max <- parsed$max + } + } + } + } + + if (grepl("corrupt_low", garbage_type, ignore.case = TRUE)) { + # Generate values below valid range + if (!is.na(range_min) && !is.na(range_max)) { + # Use specified range + values <- runif(n, range_min, range_max) + } else { + # Default: very low values + values <- runif(n, -100, -1) + } + + } else if (grepl("corrupt_high", garbage_type, ignore.case = TRUE)) { + # Generate values above valid range + if (!is.na(range_min) && !is.na(range_max)) { + values <- runif(n, range_min, range_max) + } else { + # Default: very high values + values <- runif(n, 200, 1000) + } + + } else if (grepl("corrupt_future", garbage_type, ignore.case = TRUE)) { + # Generate future dates + if (variable_type %in% c("date", "survival")) { + today <- Sys.Date() + future_start <- today + 365 + future_end <- today + 365 * 100 + values <- sample(seq(future_start, future_end, by = "day"), n, replace = TRUE) + } else { + values <- rep(NA, n) + } + + } else if (grepl("corrupt_past", garbage_type, ignore.case = TRUE)) { + # Generate past dates (less common) + if (variable_type %in% c("date", "survival")) { + past_end <- Sys.Date() - 365 * 100 + past_start <- Sys.Date() - 365 * 200 + values <- sample(seq(past_start, past_end, by = "day"), n, replace = TRUE) + } else { + values <- rep(NA, n) + } + + } else { + # Unknown garbage type - return NA + warning("Unknown garbage type: ", garbage_type) + values <- rep(NA, n) + } + + return(values) +} + + +# 7. R TYPE COERCION ==== + +#' Apply rType defaults to variable details +#' +#' Adds rType column with smart defaults if missing. This enables +#' language-specific type coercion (R types like integer, double, factor). +#' +#' @param details Data frame. Variable details metadata. +#' +#' @return Data frame with rType column added (if missing) or validated (if present). +#' +#' @details +#' ## Default rType values +#' +#' If rType column is missing, defaults are applied based on variable type: +#' - `continuous`/`cont` → `"double"` +#' - `categorical`/`cat` → `"factor"` +#' - `date` → `"Date"` +#' - `logical` → `"logical"` +#' - Unknown → `"character"` +#' +#' ## Valid rType values +#' +#' - `"integer"`: Whole numbers (age, counts, years) +#' - `"double"`: Decimal numbers (BMI, income, percentages) +#' - `"factor"`: Categorical with levels +#' - `"character"`: Text codes +#' - `"logical"`: TRUE/FALSE values +#' - `"Date"`: Date objects +#' - `"POSIXct"`: Datetime objects +#' +#' @examples +#' \dontrun{ +#' # Missing rType - defaults applied +#' details <- data.frame( +#' variable = "age", +#' typeEnd = "cont", +#' recStart = "[18, 100]" +#' ) +#' details <- apply_rtype_defaults(details) +#' # details$rType is now "double" +#' +#' # Existing rType - preserved +#' details <- data.frame( +#' variable = "age", +#' typeEnd = "cont", +#' rType = "integer" +#' ) +#' details <- apply_rtype_defaults(details) +#' # details$rType remains "integer" +#' } +#' +#' @family mockdata-helpers +#' @export +apply_rtype_defaults <- function(details) { + + # If rType already exists, validate and return + if ("rType" %in% names(details)) { + # Validate rType values + valid_rtypes <- c("integer", "double", "factor", "character", + "logical", "Date", "POSIXct") + invalid <- setdiff(unique(details$rType[!is.na(details$rType)]), valid_rtypes) + if (length(invalid) > 0) { + warning("Invalid rType values found: ", paste(invalid, collapse = ", "), + ". Valid values: ", paste(valid_rtypes, collapse = ", "), + call. = FALSE) + } + return(details) + } + + # Add rType column with defaults + details$rType <- NA_character_ + + # Determine type column (could be typeEnd or variableType) + type_col <- if ("typeEnd" %in% names(details)) { + "typeEnd" + } else if ("variableType" %in% names(details)) { + "variableType" + } else { + NULL + } + + if (!is.null(type_col)) { + # Apply defaults based on type + type_lower <- tolower(details[[type_col]]) + + details$rType <- dplyr::case_when( + type_lower %in% c("cont", "continuous") ~ "double", # Continuous → double (default) + type_lower %in% c("cat", "categorical") ~ "factor", # Categorical → factor (default) + type_lower == "date" ~ "Date", # Date → Date (default) + type_lower == "logical" ~ "logical", # Logical → logical + TRUE ~ "character" # Fallback + ) + } else { + # No type column found - default to character + details$rType <- "character" + } + + return(details) +} + + +# 8. CYCLE AND VARIABLE QUERIES ==== + +#' Get list of variables used in a specific database/cycle +#' +#' Returns a data frame containing all variables that are available in a +#' specified database/cycle, with their metadata and extracted raw variable names. +#' +#' @param cycle Character string specifying the database/cycle (e.g., "cycle1", +#' "cycle1_meds" for CHMS; "cchs2001", "cchs2017_p" for CCHS). +#' @param variables Data frame from variables.csv containing variable metadata. +#' @param variable_details Data frame from variable_details.csv containing detailed recoding specifications. +#' @param include_derived Logical. Should derived variables be included? Default is TRUE. +#' +#' @return Data frame with columns: +#' \itemize{ +#' \item variable - Harmonized variable name +#' \item variable_raw - Raw source variable name (extracted from variableStart) +#' \item label - Human-readable label +#' \item variableType - "Categorical" or "Continuous" +#' \item databaseStart - Which databases/cycles the variable appears in +#' \item variableStart - Original variableStart string (for reference) +#' } +#' +#' Returns empty data frame if no variables found for the database/cycle. +#' +#' @details +#' The function filters variables.csv by checking if the database/cycle appears +#' in the `databaseStart` field (exact match), then uses \code{\link{parse_variable_start}} +#' to extract the raw variable name from the `variableStart` field. +#' +#' **Important**: Uses exact matching to avoid false positives (e.g., "cycle1" +#' should not match "cycle1_meds"). +#' +#' Derived variables (those with "DerivedVar::" in variableStart) return NA for +#' variable_raw since they require custom derivation logic. +#' +#' @examples +#' \dontrun{ +#' # Load metadata +#' variables <- read.csv("inst/extdata/variables.csv") +#' variable_details <- read.csv("inst/extdata/variable-details.csv") +#' +#' # CHMS example +#' cycle1_vars <- get_cycle_variables("cycle1", variables, variable_details) +#' +#' # CCHS example +#' cchs2001_vars <- get_cycle_variables("cchs2001", variables, variable_details) +#' +#' # Exclude derived variables +#' cycle1_original <- get_cycle_variables("cycle1", variables, variable_details, +#' include_derived = FALSE) +#' } +#' +#' @seealso \code{\link{parse_variable_start}} +#' +#' @family mockdata-helpers +#' @export +get_cycle_variables <- function(cycle, variables, variable_details, + include_derived = TRUE) { + # Basic validation + if (is.null(cycle) || cycle == "") { + return(data.frame( + variable = character(), + variable_raw = character(), + label = character(), + variableType = character(), + databaseStart = character(), + variableStart = character(), + stringsAsFactors = FALSE + )) + } + + # Filter variables by cycle using EXACT match + # Split databaseStart by comma and check for exact cycle match + # This prevents "cycle1" from matching "cycle1_meds" + cycle_vars <- variables[sapply(variables$databaseStart, function(db_start) { + cycles <- strsplit(db_start, ",")[[1]] + cycles <- trimws(cycles) + cycle %in% cycles + }), ] + + # If no variables found, return empty data frame + if (nrow(cycle_vars) == 0) { + return(data.frame( + variable = character(), + variable_raw = character(), + label = character(), + variableType = character(), + databaseStart = character(), + variableStart = character(), + stringsAsFactors = FALSE + )) + } + + # Extract raw variable names using parse_variable_start + cycle_vars$variable_raw <- sapply(cycle_vars$variableStart, function(vs) { + raw_name <- parse_variable_start(vs, cycle) + if (is.null(raw_name)) return(NA_character_) + return(raw_name) + }) + + # Filter out derived variables if requested + if (!include_derived) { + cycle_vars <- cycle_vars[!grepl("DerivedVar::", cycle_vars$variableStart, fixed = TRUE), ] + } + + # Select and return relevant columns + result <- data.frame( + variable = cycle_vars$variable, + variable_raw = cycle_vars$variable_raw, + label = cycle_vars$label, + variableType = cycle_vars$variableType, + databaseStart = cycle_vars$databaseStart, + variableStart = cycle_vars$variableStart, + stringsAsFactors = FALSE + ) + + return(result) +} + + +#' Get list of unique raw variables for a database/cycle +#' +#' Returns a data frame of unique raw (source) variables that should be generated +#' for a specific database/cycle. This is the correct approach for generating mock +#' data, as we want to create the raw source data, not the harmonized variables. +#' +#' @param cycle Character string specifying the database/cycle (e.g., "cycle1", +#' "cycle1_meds" for CHMS; "cchs2001" for CCHS). +#' @param variables Data frame from variables.csv containing variable metadata. +#' @param variable_details Data frame from variable_details.csv containing detailed specifications. +#' @param include_derived Logical. Should derived variables be included? Default is FALSE +#' (since derived variables are computed from other variables, not in raw data). +#' +#' @return Data frame with columns: +#' \itemize{ +#' \item variable_raw - Raw source variable name (unique) +#' \item variableType - "Categorical" or "Continuous" +#' \item harmonized_vars - Comma-separated list of harmonized variables that use this raw variable +#' \item n_harmonized - Count of how many harmonized variables use this raw variable +#' } +#' +#' @details +#' This function: +#' \enumerate{ +#' \item Gets all variables available in the database/cycle using \code{\link{get_cycle_variables}} +#' \item Extracts unique raw variable names +#' \item Groups harmonized variables by their raw source +#' \item Returns one row per unique raw variable +#' } +#' +#' This is the correct approach because: +#' \itemize{ +#' \item Mock data should represent raw source data (before harmonization) +#' \item Each raw variable should appear exactly once +#' \item Multiple harmonized variables can derive from the same raw variable +#' } +#' +#' @examples +#' \dontrun{ +#' # Load metadata +#' variables <- read.csv("inst/extdata/variables.csv") +#' variable_details <- read.csv("inst/extdata/variable-details.csv") +#' +#' # CHMS example +#' raw_vars <- get_raw_variables("cycle1", variables, variable_details) +#' +#' # CCHS example +#' raw_vars_cchs <- get_raw_variables("cchs2001", variables, variable_details) +#' +#' # Generate mock data from raw variables +#' for (i in 1:nrow(raw_vars)) { +#' var_raw <- raw_vars$variable_raw[i] +#' var_type <- raw_vars$variableType[i] +#' # Generate the raw variable... +#' } +#' } +#' +#' @seealso \code{\link{get_cycle_variables}}, \code{\link{parse_variable_start}} +#' +#' @family mockdata-helpers +#' @export +get_raw_variables <- function(cycle, variables, variable_details, + include_derived = FALSE) { + # Get all cycle variables (harmonized) + cycle_vars <- get_cycle_variables(cycle, variables, variable_details, + include_derived = include_derived) + + # Remove rows with NA raw variable names (e.g., DerivedVar that couldn't be parsed) + cycle_vars <- cycle_vars[!is.na(cycle_vars$variable_raw), ] + + # If no variables, return empty data frame + if (nrow(cycle_vars) == 0) { + return(data.frame( + variable_raw = character(), + variableType = character(), + harmonized_vars = character(), + n_harmonized = integer(), + stringsAsFactors = FALSE + )) + } + + # Group by raw variable name + # For each unique raw variable, collect the harmonized variables that use it + raw_var_list <- unique(cycle_vars$variable_raw) + + result <- lapply(raw_var_list, function(raw_var) { + # Find all harmonized variables that map to this raw variable + matching_rows <- cycle_vars[cycle_vars$variable_raw == raw_var, ] + + # Get variable type (should be same for all harmonized vars using this raw var) + var_type <- matching_rows$variableType[1] + + # Get list of harmonized variable names + harmonized_list <- matching_rows$variable + + data.frame( + variable_raw = raw_var, + variableType = var_type, + harmonized_vars = paste(harmonized_list, collapse = ", "), + n_harmonized = length(harmonized_list), + stringsAsFactors = FALSE + ) + }) + + # Combine into single data frame + result_df <- do.call(rbind, result) + + # Sort by variable name for consistency + result_df <- result_df[order(result_df$variable_raw), ] + rownames(result_df) <- NULL + + return(result_df) +} diff --git a/R/read_mock_data_config.R b/R/read_mock_data_config.R new file mode 100644 index 0000000..9090d88 --- /dev/null +++ b/R/read_mock_data_config.R @@ -0,0 +1,180 @@ +#' Read and validate MockData configuration file defining variable specifications for mock data generation +#' +#' @description +#' Reads a mock_data_config.csv file containing variable definitions for +#' mock data generation. Optionally validates the configuration against +#' schema requirements. +#' +#' @param config_path Character. Path to mock_data_config.csv file. +#' @param validate Logical. Whether to validate the configuration (default TRUE). +#' +#' @return Data frame with configuration variables and their parameters, +#' sorted by position column. +#' +#' @details +#' The configuration file should have the following columns: +#' +#' **Core columns:** +#' - uid: Unique identifier (v_001, v_002, ...) +#' - variable: Variable name +#' - role: Comma-separated role values (enabled, predictor, outcome, etc.) +#' - label: Short label for tables +#' - labelLong: Descriptive label +#' - section: Primary grouping for Table 1 +#' - subject: Secondary grouping +#' - variableType: Data type (categorical, continuous, date, survival, character, integer) +#' - units: Measurement units +#' - position: Sort order (10, 20, 30...) +#' +#' **Provenance columns:** +#' - source_database: Database identifier(s) from import +#' - source_spec: Source specification file +#' - version: Configuration version +#' - last_updated: Date last modified +#' - notes: Documentation +#' - seed: Random seed for reproducibility +#' +#' The function performs the following processing: +#' 1. Reads CSV file with read.csv() +#' 2. Converts date columns to Date type +#' 3. Sorts by position column +#' 4. Validates if validate = TRUE +#' +#' @examples +#' \dontrun{ +#' # Read configuration file +#' config <- read_mock_data_config( +#' "inst/extdata/mock_data_config.csv" +#' ) +#' +#' # Read without validation +#' config <- read_mock_data_config( +#' "inst/extdata/mock_data_config.csv", +#' validate = FALSE +#' ) +#' +#' # View structure +#' str(config) +#' head(config) +#' } +#' +#' @export +read_mock_data_config <- function(config_path, validate = TRUE) { + + # Input validation + if (!file.exists(config_path)) { + stop("Configuration file does not exist: ", config_path) + } + + # Read CSV + config <- read.csv(config_path, stringsAsFactors = FALSE, check.names = FALSE) + + # Type conversions + if ("last_updated" %in% names(config)) { + config$last_updated <- as.Date(config$last_updated) + } + + # Sort by position + if ("position" %in% names(config)) { + config <- config[order(config$position), ] + } + + # Validate if requested + if (validate) { + validate_mock_data_config(config) + } + + return(config) +} + +#' Validate MockData configuration against schema requirements including required columns and unique identifiers +#' +#' @description +#' Validates a mock_data_config data frame against schema requirements. +#' Checks for required columns, unique variable names, valid role values, +#' and valid variableType values. +#' +#' @param config Data frame. Configuration data read from mock_data_config.csv. +#' +#' @return Invisible NULL. Stops with error message if validation fails. +#' +#' @details +#' Validation checks: +#' +#' **Required columns:** +#' - uid, variable, role, variableType, position +#' +#' **Uniqueness:** +#' - uid values must be unique +#' - variable names must be unique +#' +#' **Valid values:** +#' - role: Can contain enabled, predictor, outcome, confounder, exposure, +#' table1, metadata, intermediate (comma-separated) +#' - variableType: categorical, continuous, date, survival, character, integer +#' +#' **Safe NA handling:** +#' - Uses which() to handle NA values in logical comparisons +#' - Prevents "missing value where TRUE/FALSE needed" errors +#' +#' @examples +#' \dontrun{ +#' # Validate configuration +#' config <- read.csv("mock_data_config.csv", stringsAsFactors = FALSE) +#' validate_mock_data_config(config) +#' } +#' +#' @export +validate_mock_data_config <- function(config) { + + # Check required columns + required_cols <- c("uid", "variable", "role", "variableType", "position") + missing_cols <- setdiff(required_cols, names(config)) + if (length(missing_cols) > 0) { + stop("Missing required columns in mock_data_config.csv: ", + paste(missing_cols, collapse = ", ")) + } + + # Check unique uid values + if (any(duplicated(config$uid))) { + duplicates <- config$uid[duplicated(config$uid)] + stop("Duplicate uid values found in mock_data_config.csv: ", + paste(unique(duplicates), collapse = ", ")) + } + + # Check unique variable names + if (any(duplicated(config$variable))) { + duplicates <- config$variable[duplicated(config$variable)] + stop("Duplicate variable names found in mock_data_config.csv: ", + paste(unique(duplicates), collapse = ", ")) + } + + # Check valid variableType values (case-insensitive) + valid_types <- c("categorical", "continuous", "date", "survival", + "character", "integer") + invalid_types <- which(!tolower(config$variableType) %in% c(tolower(valid_types), NA)) + if (length(invalid_types) > 0) { + bad_values <- unique(config$variableType[invalid_types]) + stop("Invalid variableType values in mock_data_config.csv: ", + paste(bad_values, collapse = ", "), + "\nValid values: ", paste(valid_types, collapse = ", ")) + } + + # Check position values are positive + invalid_positions <- which(config$position <= 0) + if (length(invalid_positions) > 0) { + stop("Position values must be positive. Invalid rows: ", + paste(config$variable[invalid_positions], collapse = ", ")) + } + + # Validate role values (flexible - just check for common patterns) + # Role can be comma-separated, so we don't enforce strict values + # Just warn if role is NA + na_roles <- which(is.na(config$role) | config$role == "") + if (length(na_roles) > 0) { + warning("Some variables have missing role values (rows: ", + paste(config$variable[na_roles], collapse = ", "), ")") + } + + invisible(NULL) +} diff --git a/R/read_mock_data_config_details.R b/R/read_mock_data_config_details.R new file mode 100644 index 0000000..68e7696 --- /dev/null +++ b/R/read_mock_data_config_details.R @@ -0,0 +1,244 @@ +#' Read and validate MockData configuration details file containing distribution parameters and category proportions +#' +#' @description +#' Reads a mock_data_config_details.csv file containing distribution parameters +#' and proportions for mock data generation. Optionally validates the details +#' against schema requirements and optionally against a config file. +#' +#' @param details_path Character. Path to mock_data_config_details.csv file. +#' @param validate Logical. Whether to validate the details (default TRUE). +#' @param config Data frame (optional). Configuration from read_mock_data_config() +#' for cross-validation of variable references. +#' +#' @return Data frame with detail rows for each variable's distribution parameters. +#' +#' @details +#' The details file should have the following columns: +#' +#' **Link columns:** +#' - uid: Links to mock_data_config.csv via uid (variable-level) +#' - uid_detail: Unique identifier for this detail row (d_001, d_002, ...) +#' - variable: Variable name (denormalized for readability) +#' +#' **Category/parameter columns:** +#' - dummyVariable: Recodeflow dummy variable identifier +#' - recEnd: Category value or parameter name +#' - catLabel: Short category label +#' - catLabelLong: Long category label +#' - units: Measurement units for this parameter +#' +#' **Distribution parameters:** +#' - proportion: Proportion for this category (0-1) +#' - value: Numeric value +#' - range_min, range_max: Value ranges +#' - date_start, date_end: Date ranges +#' - notes: Implementation notes +#' +#' The function performs the following processing: +#' 1. Reads CSV file with read.csv() +#' 2. Converts numeric columns (proportion, value, ranges) +#' 3. Converts date columns to Date type +#' 4. Validates if validate = TRUE +#' +#' @examples +#' \dontrun{ +#' # Read details file +#' details <- read_mock_data_config_details( +#' "inst/extdata/mock_data_config_details.csv" +#' ) +#' +#' # Read with cross-validation against config +#' config <- read_mock_data_config("inst/extdata/mock_data_config.csv") +#' details <- read_mock_data_config_details( +#' "inst/extdata/mock_data_config_details.csv", +#' config = config +#' ) +#' +#' # View structure +#' str(details) +#' head(details) +#' } +#' +#' @export +read_mock_data_config_details <- function(details_path, validate = TRUE, config = NULL) { + + # Input validation + if (!file.exists(details_path)) { + stop("Details file does not exist: ", details_path) + } + + # Read CSV + details <- read.csv(details_path, stringsAsFactors = FALSE, check.names = FALSE) + + # Type conversions + numeric_cols <- c("proportion", "value", "range_min", "range_max") + for (col in numeric_cols) { + if (col %in% names(details)) { + details[[col]] <- as.numeric(details[[col]]) + } + } + + date_cols <- c("date_start", "date_end") + for (col in date_cols) { + if (col %in% names(details)) { + details[[col]] <- as.Date(details[[col]]) + } + } + + # Validate if requested + if (validate) { + validate_mock_data_config_details(details, config = config) + } + + return(details) +} + +#' Validate MockData configuration details against schema requirements including proportion sums and parameter completeness +#' +#' @description +#' Validates a mock_data_config_details data frame against schema requirements. +#' Checks for required columns, valid proportions, proportion sums, parameter +#' requirements, and optionally validates links to config file. +#' +#' @param details Data frame. Details data read from mock_data_config_details.csv. +#' @param config Data frame (optional). Configuration for cross-validation. +#' +#' @return Invisible NULL. Stops with error message if validation fails. +#' +#' @details +#' Validation checks: +#' +#' **Required columns:** +#' - uid, uid_detail, variable, recEnd +#' +#' **Uniqueness:** +#' - uid_detail values must be unique +#' +#' **Proportion validation:** +#' - Values must be in range `[0, 1]` +#' - Population proportions (valid + missing codes) must sum to 1.0 ±0.001 per variable +#' - Contamination proportions (corrupt_*) are excluded from sum +#' - Auto-normalizes with warning if sum ≠ 1.0 +#' +#' **Parameter validation:** +#' - Distribution-specific requirements: +#' - normal → mean + sd +#' - gompertz → rate + shape +#' - exponential → rate +#' - poisson → rate +#' +#' **Link validation (if config provided):** +#' - All uid values must exist in config$uid +#' +#' **Flexible recEnd validation:** +#' - Warns but doesn't error on unknown recEnd values +#' +#' @examples +#' \dontrun{ +#' # Validate details +#' details <- read.csv("mock_data_config_details.csv", stringsAsFactors = FALSE) +#' validate_mock_data_config_details(details) +#' +#' # Validate with cross-check against config +#' config <- read.csv("mock_data_config.csv", stringsAsFactors = FALSE) +#' validate_mock_data_config_details(details, config = config) +#' } +#' +#' @export +validate_mock_data_config_details <- function(details, config = NULL) { + + # Check required columns + required_cols <- c("uid", "uid_detail", "variable", "recEnd") + missing_cols <- setdiff(required_cols, names(details)) + if (length(missing_cols) > 0) { + stop("Missing required columns in mock_data_config_details.csv: ", + paste(missing_cols, collapse = ", ")) + } + + # Check unique uid_detail values + if (any(duplicated(details$uid_detail))) { + duplicates <- details$uid_detail[duplicated(details$uid_detail)] + stop("Duplicate uid_detail values found in mock_data_config_details.csv: ", + paste(unique(duplicates), collapse = ", ")) + } + + # Validate proportions are in valid range + if ("proportion" %in% names(details)) { + invalid_props <- which(!is.na(details$proportion) & + (details$proportion < 0 | details$proportion > 1)) + if (length(invalid_props) > 0) { + bad_rows <- details$uid_detail[invalid_props] + stop("Proportion values must be between 0 and 1. Invalid rows: ", + paste(bad_rows, collapse = ", ")) + } + } + + # Check proportions sum to 1.0 per variable (excluding garbage rows) + if ("proportion" %in% names(details)) { + # Group by variable + vars <- unique(details$variable) + for (var in vars) { + var_rows <- details[details$variable == var, ] + + # Exclude garbage rows (corrupt_*) + pop_rows <- var_rows[!grepl("^corrupt_", var_rows$recEnd, ignore.case = TRUE), ] + + # Calculate sum of population proportions (excluding NA) + prop_sum <- sum(pop_rows$proportion, na.rm = TRUE) + + # Check if we have any non-NA proportions + has_proportions <- any(!is.na(pop_rows$proportion)) + + if (has_proportions) { + tolerance <- 0.001 + if (abs(prop_sum - 1.0) > tolerance) { + warning("Proportions for variable '", var, "' sum to ", + round(prop_sum, 4), " (expected 1.0). ", + "Auto-normalizing proportions.") + + # Auto-normalize + norm_factor <- 1.0 / prop_sum + pop_idx <- which(details$variable == var & + !grepl("^corrupt_", details$recEnd, ignore.case = TRUE) & + !is.na(details$proportion)) + details$proportion[pop_idx] <- details$proportion[pop_idx] * norm_factor + } + } + } + } + + # Link validation: check all uids exist in config + if (!is.null(config)) { + if (!"uid" %in% names(config)) { + warning("Config file provided but does not have 'uid' column. Skipping link validation.") + } else { + missing_uids <- setdiff(unique(details$uid), config$uid) + if (length(missing_uids) > 0) { + stop("Details file references uids not found in config: ", + paste(missing_uids, collapse = ", ")) + } + } + } + + # Flexible recEnd validation (warn on potentially unknown values) + # Common known values + known_recEnd <- c("copy", "distribution", "mean", "sd", "rate", "shape", + "range_min", "range_max", "date_start", "date_end", + "censored", "valid", "corrupt_low", "corrupt_high", "corrupt_future", + "7", "8", "9", "96", "97", "98", "99", # Missing codes + "-7", "-8", "-9") # Negative missing codes + + # Check for numeric category values (1, 2, 3, etc.) - these are valid + is_numeric_category <- grepl("^[0-9]+$", details$recEnd) + is_known <- details$recEnd %in% known_recEnd | is_numeric_category + + unknown_recEnd <- unique(details$recEnd[!is_known]) + if (length(unknown_recEnd) > 0) { + # Just inform, don't error (flexible validation) + message("Note: Found recEnd values that may be category-specific: ", + paste(head(unknown_recEnd, 10), collapse = ", "), + if (length(unknown_recEnd) > 10) "..." else "") + } + + invisible(NULL) +} diff --git a/R/scalar_helpers.R b/R/scalar_helpers.R new file mode 100644 index 0000000..34010f6 --- /dev/null +++ b/R/scalar_helpers.R @@ -0,0 +1,170 @@ +#' Scalar Variable Generation Helpers +#' +#' Helper functions for scalar variable generation (single variables at a time). +#' Used by create_cat_var(), create_con_var(), create_date_var() when called +#' with individual variable parameters (var_raw, cycle, etc.) rather than +#' configuration data frames. +#' +#' These helpers work with recodeflow-style metadata (variables.csv + +#' variable_details.csv from cchsflow/chmsflow). + + +#' Get variable details for raw variable and cycle +#' +#' Filters variable_details to rows matching a specific raw variable name and cycle. +#' Handles multiple naming patterns from recodeflow packages. +#' +#' @param var_raw Character. Raw variable name (e.g., "alc_11", "HGT_CM") +#' @param cycle Character. Cycle identifier (e.g., "cycle1", "cchs2001") +#' @param variable_details Data frame. Full variable_details metadata +#' @param variables Data frame. Optional variables metadata (not used currently) +#' +#' @return Data frame subset of variable_details for this variable + cycle +#' +#' @details +#' Tries three matching strategies in order: +#' 1. Database-prefixed format: `"cycle::var_raw"` +#' 2. Bracket format: `"[var_raw]"` with databaseStart filtering +#' 3. Plain format: exact match on variableStart with cycle filtering +#' +#' @keywords internal +get_variable_details_for_raw <- function(var_raw, cycle, variable_details, variables = NULL) { + if (is.null(var_raw) || is.null(cycle) || var_raw == "" || cycle == "") { + return(data.frame( + variable = character(), + variableStart = character(), + databaseStart = character(), + variableType = character(), + recStart = character(), + recEnd = character(), + stringsAsFactors = FALSE + )) + } + + # Strategy 1: Find by database-prefixed format (cycle::var_raw) + cycle_pattern <- paste0(cycle, "::", var_raw) + matches <- variable_details[grepl(cycle_pattern, variable_details$variableStart, fixed = TRUE), ] + + # Strategy 2: Find by bracket format ([var_raw]) with databaseStart filtering + if (nrow(matches) == 0) { + bracket_pattern <- paste0("[", var_raw, "]") + bracket_matches <- variable_details[grepl(bracket_pattern, variable_details$variableStart, fixed = TRUE), ] + + if (nrow(bracket_matches) > 0) { + # Filter by databaseStart to ensure correct cycle + bracket_matches <- bracket_matches[grepl(cycle, bracket_matches$databaseStart, fixed = TRUE), ] + matches <- bracket_matches + } + } + + # Strategy 3: Find by plain format (var_raw) with strict filtering + if (nrow(matches) == 0) { + # Only match if variableStart is EXACTLY the var_raw + plain_matches <- variable_details[ + variable_details$variableStart == var_raw & + grepl(cycle, variable_details$databaseStart, fixed = TRUE), + ] + matches <- plain_matches + } + + return(matches) +} + + +#' Extract categories from variable details +#' +#' Extracts categorical values from variable_details recStart/recEnd columns. +#' Handles range notation, special codes, and missing code patterns. +#' +#' @param var_details Data frame. Filtered variable_details rows +#' @param include_na Logical. Include NA/missing codes (default FALSE) +#' +#' @return Character vector of category values +#' +#' @details +#' Handles recodeflow notation: +#' - Simple categories: "1", "2", "3" +#' - Integer ranges: `"[7,9]"` → c("7", "8", "9") +#' - Continuous ranges: "[18.5,25)" (kept as single value) +#' - Special codes: "copy", "else" (EXCLUDED from v0.1 generation) +#' - Missing codes: Identified by "NA" in recEnd +#' +#' Note: "else" is excluded because it represents a harmonization rule, +#' not a predictable raw data value. +#' +#' @keywords internal +get_variable_categories <- function(var_details, include_na = FALSE) { + if (nrow(var_details) == 0) { + return(character(0)) + } + + # Filter based on whether we want NA codes or regular labels + if (include_na) { + # Get rows where recEnd contains "NA" + rows <- var_details[grepl("NA", var_details$recEnd, fixed = TRUE), ] + } else { + # Get rows where recEnd does NOT contain "NA" + rows <- var_details[!grepl("NA", var_details$recEnd, fixed = TRUE), ] + } + + if (nrow(rows) == 0) { + return(character(0)) + } + + # IMPORTANT: Exclude "else" rows (harmonization rules, not raw data values) + # This matches the fix in extract_proportions() for v0.2 path + rows <- rows[rows$recEnd != "else", ] + + if (nrow(rows) == 0) { + return(character(0)) + } + + # Extract recStart values + rec_start_values <- rows$recStart + + # Process each value through parse_range_notation + all_values <- character(0) + + for (value in rec_start_values) { + if (is.na(value) || value == "") { + next + } + + parsed <- parse_range_notation(value) + + if (is.null(parsed)) { + # If parsing failed, use raw value + all_values <- c(all_values, as.character(value)) + next + } + + # Handle different parsed types + if (parsed$type == "integer") { + # For integer ranges, use the expanded values + if (!is.null(parsed$values)) { + all_values <- c(all_values, as.character(parsed$values)) + } else { + # If values not expanded, just use min-max representation + all_values <- c(all_values, as.character(value)) + } + } else if (parsed$type == "single_value") { + # Single numeric value + all_values <- c(all_values, as.character(parsed$value)) + } else if (parsed$type == "continuous") { + # For continuous ranges, keep as-is (don't expand) + all_values <- c(all_values, as.character(value)) + } else if (parsed$type == "special") { + # Skip special codes (copy, else, Func::, etc.) + next + } else if (parsed$type == "function") { + # Skip function calls + next + } else { + # Unknown type, use raw value + all_values <- c(all_values, as.character(value)) + } + } + + # Return unique values + return(unique(all_values)) +} diff --git a/README.md b/README.md index 477b991..875ac12 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,48 @@ Generate mock testing data from recodeflow metadata (variables.csv and variable- ## Overview -MockData creates realistic mock data for testing harmonisation workflows across recodeflow projects (CHMS, CCHS, etc.). It reads variable specifications from metadata files and generates appropriate categorical and continuous variables with correct value ranges, tagged NAs, and reproducible seeds. +MockData is a tool for generating metadata-driven mock datasets to support testing and development of harmonisation workflows across recodeflow projects such as CHMSFlow and CCHSFlow. + +### What is mock data? + +In this package, "mock data" refers to metadata-driven simulated data created solely for software testing and workflow validation. Mock data are generated from variable specifications (e.g., `variables.csv`, `variable_details.csv`) and contain **no real person-level data** or identifiable information. + +**Key distinctions**: + +- **Mock data** (this package): Generated from metadata only. Mimics variable structure and ranges but not real-world statistical relationships. Used for testing pipelines, not analysis. +- **Synthetic data**: Preserves statistical properties and relationships from real datasets through generative models. May be used for research when properly validated. +- **Dummy data**: Placeholder or minimal test data, often hardcoded or randomly generated without metadata constraints. + +MockData creates data that *looks* realistic (appropriate variable types, value ranges, category labels, tagged NAs) but has **no relationship to any actual population**. Joint distributions and correlations may differ significantly from real-world data. + +### Use cases + +**Appropriate uses**: + +- Workflow testing and data pipeline validation +- Data harmonisation logic checks (cchsflow, chmsflow) +- Developing analysis scripts before data access +- Creating reproducible examples for documentation +- Training new analysts on survey data structure + +**Not appropriate for**: + +- Population inference or epidemiological modelling +- Predictive algorithm training +- Statistical analysis or research publication +- Any use requiring realistic joint distributions or correlations + +### Privacy and ethics + +Generated mock data contain **no personal information or individual-level identifiers**. All data are created synthetically from metadata specifications, ensuring negligible risk of re-identification. This approach supports responsible, ethical, and reproducible public-health software development. ## Features -- **Metadata-driven**: Uses existing `variables.csv` and `variable-details.csv` - no duplicate specifications needed -- **Recodeflow-standard**: Supports all recodeflow notation formats (database-prefixed, bracket, mixed) -- **Metadata validation**: Tools to check metadata quality +- **Metadata-driven**: Uses existing `variables.csv` and `variable-details.csv` from recodeflow package - no duplicate specifications needed - **Universal**: Works across CHMS, CCHS, and future recodeflow projects -- **Test availability**: 224 tests covering parsers, helpers, and generators +- **Recodeflow-standard**: Supports all recodeflow notation formats (database-prefixed, bracket, mixed) +- **Data quality testing**: Generate invalid/out-of-range values to test validation pipelines (`prop_invalid`) +- **Validation**: Tools to check metadata quality ## Installation @@ -28,16 +61,18 @@ devtools::install_local("~/github/mock-data") ## Quick start +**Note**: These steps generate mock data for development and testing only—not for modelling or analysis. Data are created with reproducible seeds for consistent test results. + ```r library(MockData) # Load metadata (CHMS example with sample data) variables <- read.csv( - system.file("extdata/chms/chmsflow_sample_variables.csv", package = "MockData"), + system.file("extdata/chms/variables_chmsflow_sample.csv", package = "MockData"), stringsAsFactors = FALSE ) variable_details <- read.csv( - system.file("extdata/chms/chmsflow_sample_variable_details.csv", package = "MockData"), + system.file("extdata/chms/variable_details_chmsflow_sample.csv", package = "MockData"), stringsAsFactors = FALSE ) @@ -65,61 +100,124 @@ if (!is.null(result)) { } ``` -## Validation tools +## Documentation -Located in `mockdata-tools/`: +**Vignettes**: -```bash -# Validate metadata quality -Rscript mockdata-tools/validate-metadata.R +- [Date variables and temporal data](vignettes/dates.qmd) - Date generation, distributions, and survival analysis prep +- [CCHS example](vignettes/cchs-example.qmd) - CCHS workflow demonstration +- [CHMS example](vignettes/chms-example.qmd) - CHMS workflow demonstration +- [DemPoRT example](vignettes/demport-example.qmd) - Survival analysis workflow -# Test all cycles -Rscript mockdata-tools/test-all-cycles.R +## Contributing -# Compare different approaches -Rscript mockdata-tools/create-comparison.R -``` +This package is part of the recodeflow ecosystem. See [CONTRIBUTING.md](CONTRIBUTING.md) for details. + +## License + +MIT License - see [LICENSE](LICENSE) file for details. + +## The recodeflow universe + +MockData is part of the **recodeflow universe** — a metadata-driven approach to variable recoding and harmonization. The core philosophy is to define variable transformations once in metadata files, then reuse those definitions for harmonization, documentation, and mock data generation. + +**Design principles:** + +- **Metadata-driven**: Variable definitions and recode rules live in structured metadata (CSV files) +- **Reusable**: Same metadata drives harmonization code, documentation, and testing data +- **Survey-focused**: Built for health surveys (CCHS, CHMS) but applicable to any categorical/continuous data +- **Open and reproducible**: Transparent recode logic that anyone can inspect and verify + +**Related packages:** -See `mockdata-tools/README.md` for detailed documentation. +- [**cchsflow**](https://github.com/Big-Life-Lab/cchsflow): Harmonization workflows for Canadian Community Health Survey (CCHS) +- [**chmsflow**](https://github.com/Big-Life-Lab/chmsflow): Harmonization workflows for Canadian Health Measures Survey (CHMS) +- [**recodeflow**](https://github.com/Big-Life-Lab/recodeflow): Core metadata specifications and utilities -## Architecture +## Data sources and acknowledgements -### Core modules +The example metadata in this package is derived from: -1. **Parsers** (`R/mockdata-parsers.R`): - - `parse_variable_start()`: Extracts raw variable names from variableStart - - `parse_range_notation()`: Handles range syntax like `[7,9]`, `[18.5,25)`, `else` +- **Canadian Community Health Survey (CCHS)** — Statistics Canada +- **Canadian Health Measures Survey (CHMS)** — Statistics Canada -2. **Helpers** (`R/mockdata-helpers.R`): - - `get_cycle_variables()`: Filters metadata by cycle - - `get_raw_variables()`: Returns unique raw variables with harmonisation groupings - - `get_variable_details_for_raw()`: Retrieves category specifications - - `get_variable_categories()`: Extracts valid category codes +**Statistics Canada Open License:** -3. **Generators**: - - `create_cat_var()` (`R/create_cat_var.R`): Generates categorical variables with tagged NA support - - `create_con_var()` (`R/create_con_var.R`): Generates continuous variables with realistic distributions +The use of CCHS and CHMS metadata examples in this package falls under Statistics Canada's Open License, which permits use, reproduction, and distribution of Statistics Canada data products. We acknowledge Statistics Canada as the source of the survey designs and variable definitions that informed our example metadata files. +**Important:** This package generates **mock data only**. It does not contain, distribute, or provide access to any actual Statistics Canada microdata. Real CCHS and CHMS data are available through Statistics Canada's Research Data Centres (RDCs) and Public Use Microdata Files (PUMFs) under appropriate data access agreements. -## Testing +For more information: [Statistics Canada Open License](https://www.statcan.gc.ca/en/reference/licence) + +## Development environment setup + +This package uses [renv](https://rstudio.github.io/renv/) for reproducible package development environments. + +### For new contributors + +After cloning the repository: ```r -# Run all tests -devtools::test() +# Restore the package environment (installs all dependencies) +renv::restore() + +# Install the MockData package itself into the renv library +# (Required for building documentation and running tests) +devtools::install(upgrade = 'never') -# Run specific test file -testthat::test_file("tests/testthat/test-mockdata.R") +# Load the package for development +devtools::load_all() ``` -## Contributing +### R version compatibility -This package is part of the recodeflow ecosystem. See [CONTRIBUTING.md](CONTRIBUTING.md) for details. +- **Supported**: R 4.3.x - 4.4.x +- **Lockfile baseline**: R 4.4.2 (institutional environments typically run 1-2 versions behind current) +- The renv lockfile works across this version range - minor R version differences are handled automatically -## License +### Daily development workflow -MIT License - see [LICENSE](LICENSE) file for details. +```r +# Install new packages as normal +install.packages("packagename") + +# After adding dependencies to DESCRIPTION: +devtools::install_dev_deps() # Install updated dependencies +renv::snapshot() # Update lockfile +# Commit the updated renv.lock file + +# Check environment status anytime: +renv::status() +``` -## Related Projects +### Building documentation and site + +```r +# Generate function documentation +devtools::document() + +# Install the package (required before building site) +devtools::install(upgrade = 'never') + +# Build pkgdown site (requires Quarto installed) +pkgdown::build_site() + +# Run tests +devtools::test() +``` + +### Troubleshooting + +```r +# If packages seem out of sync: +renv::status() + +# To update package versions: +renv::update() +renv::snapshot() + +# To restore to lockfile state: +renv::restore() +``` -- [**chmsflow**](https://github.com/Big-Life-Lab/chmsflow): CHMS harmonisation workflows -- [**cchsflow**](https://github.com/Big-Life-Lab/cchsflow): CCHS harmonisation workflows +For more details, see [CONTRIBUTING.md](CONTRIBUTING.md). diff --git a/_pkgdown.yml b/_pkgdown.yml new file mode 100644 index 0000000..ba406d2 --- /dev/null +++ b/_pkgdown.yml @@ -0,0 +1,96 @@ +url: https://big-life-lab.github.io/MockData/ +template: + bootstrap: 5 + includes: + in_header: | + + +footer: + structure: + left: developed_by + right: built_with + components: + developed_by:

Developed by Juan Li and recodeflow contributors.

+ +reference: +- title: Main generation functions + desc: > + Generate categorical, continuous, date, and survival variables. Use `create_mock_data()` + for batch generation or individual functions for fine-grained control. + contents: + - create_cat_var + - create_con_var + - create_date_var + - create_survival_dates + - create_mock_data + +- title: Configuration + desc: > + Read and validate v0.2 configuration files. Import existing recodeflow metadata + or create new configurations for mock data generation workflows. + contents: + - read_mock_data_config + - read_mock_data_config_details + - validate_mock_data_config + - validate_mock_data_config_details + - import_from_recodeflow + +- title: Helper functions + desc: > + Utilities for metadata processing, proportions, type coercion, and data quality. + Support main generation functions or use directly for custom workflows. + contents: + - get_variable_details + - extract_proportions + - extract_distribution_params + - sample_with_proportions + - apply_missing_codes + - apply_rtype_defaults + - determine_proportions + - has_garbage + - make_garbage + - generate_garbage_values + - get_variables_by_role + - get_enabled_variables + - get_cycle_variables + - get_raw_variables + +- title: Parsers + desc: > + Parse recodeflow notation for variable specifications and range syntax. + Extract structured information from metadata for mock data generation. + contents: + - parse_range_notation + - parse_variable_start + +articles: +- title: Tutorials + desc: Learning-oriented step-by-step guides + navbar: Tutorials + contents: + - getting-started + - tutorial-config-files + - tutorial-dates + - tutorial-missing-data + - tutorial-garbage-data + +- title: How-to guides + desc: Task-oriented examples with real data + navbar: How-to guides + contents: + - cchs-example + - chms-example + - demport-example + +- title: Explanation + desc: Understanding concepts and design + navbar: Explanation + contents: + - dates + - advanced-topics + +- title: Reference + desc: Technical specifications + navbar: Reference + contents: + - reference-config diff --git a/inst/extdata/cchs/cchsflow_sample_variable_details.csv b/inst/extdata/cchs/variable_details_cchsflow_sample.csv similarity index 100% rename from inst/extdata/cchs/cchsflow_sample_variable_details.csv rename to inst/extdata/cchs/variable_details_cchsflow_sample.csv diff --git a/inst/extdata/cchs/cchsflow_sample_variables.csv b/inst/extdata/cchs/variables_cchsflow_sample.csv similarity index 100% rename from inst/extdata/cchs/cchsflow_sample_variables.csv rename to inst/extdata/cchs/variables_cchsflow_sample.csv diff --git a/inst/extdata/chms/chmsflow_sample_variable_details.csv b/inst/extdata/chms/chmsflow_sample_variable_details.csv deleted file mode 100644 index 90a182d..0000000 --- a/inst/extdata/chms/chmsflow_sample_variable_details.csv +++ /dev/null @@ -1,94 +0,0 @@ -variable,dummyVariable,typeEnd,databaseStart,variableStart,typeStart,recEnd,numValidCat,catLabel,catLabelLong,units,recStart,catStartLabel,variableStartShortLabel,variableStartLabel,notes -acemed,N/A,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,Func::cycles1to2_ace_inhibitors,N/A,N/A,N/A,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -acemed,acemed_cat2_1,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,1,2,Yes,Yes,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -acemed,acemed_cat2_2,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,0,2,No,No,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -acemed,acemed_cat2_NA::a,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,NA::a,2,not applicable,not applicable,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -acemed,acemed_cat2_NA::b,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,NA::b,2,missing,missing,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -acemed,N/A,cat,"cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[meucatc, npi_25b]",N/A,Func::is_ace_inhibitor,N/A,N/A,N/A,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -acemed,acemed_cat2_1,cat,"cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[meucatc, npi_25b]",N/A,1,2,Yes,Yes,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -acemed,acemed_cat2_2,cat,"cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[meucatc, npi_25b]",N/A,0,2,No,No,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -acemed,acemed_cat2_NA::a,cat,"cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[meucatc, npi_25b]",N/A,NA::a,2,not applicable,not applicable,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -acemed,acemed_cat2_NA::b,cat,"cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[meucatc, npi_25b]",N/A,NA::b,2,missing,missing,N/A,N/A,N/A,ACE inhibitors,Taking ACE inhibitors, -adj_hh_inc,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","DerivedVar::[thi_01, dhhdhsz]",N/A,Func::calculate_hhld_income,N/A,N/A,N/A,$,N/A,N/A,Adjusted household income,Adjusted total household income based on household size, -adj_hh_inc,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle5","DerivedVar::[thi_01, dhhdhsz]",N/A,NA::a,N/A,not applicable,not applicable,$,N/A,N/A,Adjusted household income,Adjusted total household income based on household size, -adj_hh_inc,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","DerivedVar::[thi_01, dhhdhsz]",N/A,NA::b,N/A,missing,missing,$,N/A,N/A,Adjusted household income,Adjusted total household income based on household size, -agegroup2079,agegroup2079_cat2_1,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,1,2,20 to 79 years,20 to 79 years,N/A,"[20, 79]",20 to 79 years,Age ,Converted age (2 groups), -agegroup2079,agegroup2079_cat2_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,2,2,Not 20 to 79 years,Not 20 to 79 years,N/A,"[3, 19]",Not 20 to 70 years,Age ,Converted age (2 groups), -agegroup2079,agegroup2079_cat2_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,2,2,Not 20 to 79 years,Not 20 to 79 years,N/A,80,Not 20 to 70 years,Age ,Converted age (2 groups), -agegroup2079,agegroup2079_cat2_NA::a,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,NA::a,2,not applicable,not applicable,N/A,996,Valid skip,Age ,Converted age (2 groups), -agegroup2079,agegroup2079_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,NA::b,2,missing,missing,N/A,"[997, 999]",Don't know (997); Refusal (998); Not stated (999),Age ,Converted age (2 groups), -agegroup2079,agegroup2079_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,NA::b,2,missing,missing,N/A,else,else,Age ,Converted age (2 groups), -agegroup4,agegroup4_cat4_1,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,1,4,20 to 39 years,20 to 39 years,N/A,"[20, 39]",20 to 39 years,Age ,Converted age (4 groups), -agegroup4,agegroup4_cat4_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,2,4,40 to 59 years,40 to 59 years,N/A,"[40, 59]",40 to 59 years,Age ,Converted age (4 groups), -agegroup4,agegroup4_cat4_3,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,3,4,60 to 69 years,60 to 69 years,N/A,"[60, 69]",60 to 69 years,Age ,Converted age (4 groups), -agegroup4,agegroup4_cat4_4,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,4,4,70 to 79 years,70 to 79 years,N/A,"[70, 79]",70 to 79 years,Age ,Converted age (4 groups), -agegroup4,agegroup4_cat4_NA::a,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,NA::a,4,not applicable,not applicable,N/A,996,Valid skip,Age ,Converted age (4 groups), -agegroup4,agegroup4_cat4_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,NA::b,4,missing,missing,N/A,"[997, 999]",Don't know (997); Refusal (998); Not stated (999),Age ,Converted age (4 groups), -agegroup4,agegroup4_cat4_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age],cont,NA::b,4,missing,missing,N/A,else,else,Age ,Converted age (4 groups), -alc_11,alc_11_cat2_1,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_11],cat,1,2,Yes,Yes,N/A,1,Yes,Drank in past year,Drank alcohol - past 12 months, -alc_11,alc_11_cat2_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_11],cat,2,2,No,No,N/A,2,No,Drank in past year,Drank alcohol - past 12 months, -alc_11,alc_11_cat2_NA::a,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_11],cat,NA::a,2,not applicable,not applicable,N/A,6,Valid skip,Drank in past year,Drank alcohol - past 12 months, -alc_11,alc_11_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_11],cat,NA::b,2,missing,missing,N/A,"[7, 9]",Don't know (7); Refusal (8); Not stated (9),Drank in past year,Drank alcohol - past 12 months, -alc_11,alc_11_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_11],cat,NA::b,2,missing,missing,N/A,else,else,Drank in past year,Drank alcohol - past 12 months, -alc_17,alc_17_cat2_1,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_17],cat,1,2,Yes,Yes,N/A,1,Yes,Ever drank alcohol,Ever had a drink, -alc_17,alc_17_cat2_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_17],cat,2,2,No,No,N/A,2,No,Ever drank alcohol,Ever had a drink, -alc_17,alc_17_cat2_NA::a,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_17],cat,NA::a,2,not applicable,not applicable,N/A,6,Valid skip,Ever drank alcohol,Ever had a drink, -alc_17,alc_17_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_17],cat,NA::b,2,missing,missing,N/A,"[7, 9]",Don't know (7); Refusal (8); Not stated (9),Ever drank alcohol,Ever had a drink, -alc_17,alc_17_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_17],cat,NA::b,2,missing,missing,N/A,else,else,Ever drank alcohol,Ever had a drink, -alc_18,alc_18_cat2_1,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_18],cat,1,2,Yes,Yes,N/A,1,Yes,Drank alcohol regularly,Regularly drank more than 12 drinks a week, -alc_18,alc_18_cat2_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_18],cat,2,2,No,No,N/A,2,No,Drank alcohol regularly,Regularly drank more than 12 drinks a week, -alc_18,alc_18_cat2_NA::a,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_18],cat,NA::a,2,not applicable,not applicable,N/A,6,Valid skip,Drank alcohol regularly,Regularly drank more than 12 drinks a week, -alc_18,alc_18_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_18],cat,NA::b,2,missing,missing,N/A,"[7, 9]",Don't know (7); Refusal (8); Not stated (9),Drank alcohol regularly,Regularly drank more than 12 drinks a week, -alc_18,alc_18_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_18],cat,NA::b,2,missing,missing,N/A,else,else,Drank alcohol regularly,Regularly drank more than 12 drinks a week, -alcdwky,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alcdwky],cont,copy,N/A,Drinks in week,Drinks in week,drinks/week,"[0, 84]",Number of drinks,Drinks in week," Weekly consumption - (D)", -alcdwky,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alcdwky],cont,NA::a,N/A,not applicable,not applicable,drinks/week,996,Valid skip,Drinks in week," Weekly consumption - (D)", -alcdwky,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alcdwky],cont,NA::b,N/A,missing,missing,drinks/week,"[997, 999]",Don't know (997); Refusal (998); Not stated (999),Drinks in week," Weekly consumption - (D)", -alcdwky,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alcdwky],cont,NA::b,N/A,missing,missing,drinks/week,else,else,Drinks in week," Weekly consumption - (D)", -ammdmva1,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1,[ammdmva1]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day), -ammdmva1,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1,[ammdmva1]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day), -ammdmva1,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1,[ammdmva1]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day), -ammdmva1,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1,[ammdmva1]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day), -ammdmva2,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2,[ammdmva2]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day), -ammdmva2,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2,[ammdmva2]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day), -ammdmva2,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2,[ammdmva2]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day), -ammdmva2,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2,[ammdmva2]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day), -ammdmva3,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3,[ammdmva3]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day), -ammdmva3,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3,[ammdmva3]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day), -ammdmva3,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3,[ammdmva3]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day), -ammdmva3,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3,[ammdmva3]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day), -ammdmva4,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4,[ammdmva4]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day), -ammdmva4,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4,[ammdmva4]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day), -ammdmva4,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4,[ammdmva4]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day), -ammdmva4,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4,[ammdmva4]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day), -ammdmva5,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5,[ammdmva5]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day), -ammdmva5,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5,[ammdmva5]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day), -ammdmva5,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5,[ammdmva5]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day), -ammdmva5,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5,[ammdmva5]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day), -ammdmva6,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6,[ammdmva6]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day), -ammdmva6,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6,[ammdmva6]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day), -ammdmva6,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6,[ammdmva6]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day), -ammdmva6,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6,[ammdmva6]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day), -ammdmva7,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7,[ammdmva7]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day), -ammdmva7,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7,[ammdmva7]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day), -ammdmva7,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7,[ammdmva7]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day), -ammdmva7,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7,[ammdmva7]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day), -anymed,N/A,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,Func::cycles1to2_any_antiHTN_meds,N/A,N/A,N/A,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed,anymed_cat2_1,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,1,2,Yes,Yes,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed,anymed_cat2_2,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,0,2,No,No,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed,anymed_cat2_NA::a,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,NA::a,2,not applicable,not applicable,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed,anymed_cat2_NA::b,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,NA::b,2,missing,missing,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed,N/A,cat,"cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[meucatc, npi_25b]",N/A,Func::is_any_antiHTN_med,N/A,N/A,N/A,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed,anymed_cat2_1,cat,"cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[meucatc, npi_25b]",N/A,1,2,Yes,Yes,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed,anymed_cat2_2,cat,"cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[meucatc, npi_25b]",N/A,0,2,No,No,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed,anymed_cat2_NA::a,cat,"cycle1_meds, cycle2_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]",N/A,NA::a,2,not applicable,not applicable,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed,anymed_cat2_NA::b,cat,"cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[meucatc, npi_25b]",N/A,NA::b,2,missing,missing,N/A,N/A,N/A,Antihypertension medication,Taking ANY antihypertension drugs, -anymed2,amymed2_cat2_3,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[anymed2],cat,copy,2,N/A,N/A,N/A,else,else,Antihypertension medication,Taking ANY antihypertension drugs, -atc_101a,N/A,cat,"cycle1_meds, cycle2_meds",[atc_101a],cat,copy,N/A,ATC,ATC,N/A,else,ATC,First prescription medication - ATC,First prescription medication - ATC, -atc_101a,N/A,cat,"cycle1_meds, cycle2_meds",[atc_101a],cat,NA::a,N/A,not applicable,not applicable,N/A,9999996,Valid skip,First prescription medication - ATC,First prescription medication - ATC, -atc_101a,N/A,cat,"cycle1_meds, cycle2_meds",[atc_101a],cat,NA::b,N/A,missing,missing,N/A,"[9999997, 9999999]",Don't know (9999997); Refusal (9999998); Not stated (9999999),First prescription medication - ATC,First prescription medication - ATC, -atc_102a,N/A,cat,"cycle1_meds, cycle2_meds",[atc_102a],cat,copy,N/A,ATC,ATC,N/A,else,ATC,Second prescription medication - ATC,Second prescription medication - ATC, -atc_102a,N/A,cat,"cycle1_meds, cycle2_meds",[atc_102a],cat,NA::a,N/A,not applicable,not applicable,N/A,9999996,Valid skip,Second prescription medication - ATC,Second prescription medication - ATC, -atc_102a,N/A,cat,"cycle1_meds, cycle2_meds",[atc_102a],cat,NA::b,N/A,missing,missing,N/A,"[9999997, 9999999]",Don't know (9999997); Refusal (9999998); Not stated (9999999),Second prescription medication - ATC,Second prescription medication - ATC, -atc_103a,N/A,cat,"cycle1_meds, cycle2_meds",[atc_103a],cat,copy,N/A,ATC,ATC,N/A,else,ATC,Third prescription medication - ATC,Third prescription medication - ATC, -atc_103a,N/A,cat,"cycle1_meds, cycle2_meds",[atc_103a],cat,NA::a,N/A,not applicable,not applicable,N/A,9999996,Valid skip,Third prescription medication - ATC,Third prescription medication - ATC, -atc_103a,N/A,cat,"cycle1_meds, cycle2_meds",[atc_103a],cat,NA::b,N/A,missing,missing,N/A,"[9999997, 9999999]",Don't know (9999997); Refusal (9999998); Not stated (9999999),Third prescription medication - ATC,Third prescription medication - ATC, diff --git a/inst/extdata/chms/chmsflow_sample_variables.csv b/inst/extdata/chms/chmsflow_sample_variables.csv deleted file mode 100644 index e76a0d7..0000000 --- a/inst/extdata/chms/chmsflow_sample_variables.csv +++ /dev/null @@ -1,21 +0,0 @@ -variable,role,label,labelLong,section,subject,variableType,units,databaseStart,variableStart,description -acemed,,ACE inhibitors,Taking ACE inhibitors,Health status,Medication,Categorical,N/A,"cycle1_meds, cycle2_meds, cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]; DerivedVar::[meucatc, npi_25b]", -adj_hh_inc,,Adjusted household income,Adjusted total household income based on household size,Socioeconomic,Income,Continuous,$,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","DerivedVar::[thi_01, dhhdsz]", -agegroup2079,,Age ,Converted age (2 groups),Sociodemographics,Age,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age], -agegroup4,,Age ,Converted age (4 groups),Sociodemographics,Age,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[clc_age], -alc_11,,Drank in past year,Drank alcohol - past 12 months,Health behaviour,Alcohol,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_11], -alc_17,,Ever drank alcohol,Ever had a drink,Health behaviour,Alcohol,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alc_17], -alc_18,,Drank alcohol regularly,Regularly drank more than 12 drinks a week,Health behaviour,Alcohol,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle7",[alc_18], -alcdwky,,Drinks in week," Weekly consumption - (D)",Health behaviour,Alcohol,Continuous,drinks/week,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[alcdwky], -ammdmva1,,Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1, [ammdmva1]", -ammdmva2,,Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2, [ammdmva2]", -ammdmva3,,Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3, [ammdmva3]", -ammdmva4,,Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4, [ammdmva4]", -ammdmva5,,Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5, [ammdmva5]", -ammdmva6,,Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6, [ammdmva6]", -ammdmva7,,Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7, [ammdmva7]", -anymed,Drugs,Antihypertension medication,Taking ANY antihypertension drugs,Health status,Medication,Categorical,N/A,"cycle1_meds, cycle2_meds, cycle3_meds, cycle4_meds, cycle5_meds, cycle6_meds","DerivedVar::[atc_101a, atc_102a, atc_103a, atc_104a, atc_105a, atc_106a, atc_107a, atc_108a, atc_109a, atc_110a, atc_111a, atc_112a, atc_113a, atc_114a, atc_115a, atc_201a, atc_202a, atc_203a, atc_204a, atc_205a, atc_206a, atc_207a, atc_208a, atc_209a, atc_210a, atc_211a, atc_212a, atc_213a, atc_214a, atc_215a, atc_131a, atc_132a, atc_133a, atc_134a, atc_135a, atc_231a, atc_232a, atc_233a, atc_234a, atc_235a, mhr_101b, mhr_102b, mhr_103b, mhr_104b, mhr_105b, mhr_106b, mhr_107b, mhr_108b, mhr_109b, mhr_110b, mhr_111b, mhr_112b, mhr_113b, mhr_114b, mhr_115b, mhr_201b, mhr_202b, mhr_203b, mhr_204b, mhr_205b, mhr_206b, mhr_207b, mhr_208b, mhr_209b, mhr_210b, mhr_211b, mhr_212b, mhr_213b, mhr_214b, mhr_215b, mhr_131b, mhr_132b, mhr_133b, mhr_134b, mhr_135b, mhr_231b, mhr_232b, mhr_233b, mhr_234b, mhr_235b]; DerivedVar::[meucatc, npi_25b]", -anymed2,Test,Antihypertension medication,Taking ANY antihypertension drugs,Health status,Medication,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6",[anymed2], -atc_101a,Drugs,First prescription medication - ATC,First prescription medication - ATC,Health status,Medication,Categorical,N/A,"cycle1_meds, cycle2_meds",[atc_101a], -atc_102a,Drugs,Second prescription medication - ATC,Second prescription medication - ATC,Health status,Medication,Categorical,N/A,"cycle1_meds, cycle2_meds",[atc_102a], -atc_103a,Drugs,Third prescription medication - ATC,Third prescription medication - ATC,Health status,Medication,Categorical,N/A,"cycle1_meds, cycle2_meds",[atc_103a], diff --git a/inst/extdata/chms/variable_details_chmsflow_sample.csv b/inst/extdata/chms/variable_details_chmsflow_sample.csv new file mode 100644 index 0000000..16408e3 --- /dev/null +++ b/inst/extdata/chms/variable_details_chmsflow_sample.csv @@ -0,0 +1,74 @@ +variable,dummyVariable,typeEnd,databaseStart,variableStart,typeStart,recEnd,numValidCat,catLabel,catLabelLong,units,recStart,catStartLabel,variableStartShortLabel,variableStartLabel,notes +alc_11,alc_11_cat2_1,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6:: ALC_11, [alc_11]",cat,1,2,Yes,Yes,N/A,1,Yes,Drank in past year,Drank alcohol - past 12 months, +alc_11,alc_11_cat2_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6:: ALC_11, [alc_11]",cat,2,2,No,No,N/A,2,No,Drank in past year,Drank alcohol - past 12 months, +alc_11,alc_11_cat2_NA::a,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6:: ALC_11, [alc_11]",cat,NA::a,2,not applicable,not applicable,N/A,6,Valid skip,Drank in past year,Drank alcohol - past 12 months, +alc_11,alc_11_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6:: ALC_11, [alc_11]",cat,NA::b,2,missing,missing,N/A,"[7, 9]",Don't know (7); Refusal (8); Not stated (9),Drank in past year,Drank alcohol - past 12 months, +alc_11,alc_11_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6:: ALC_11, [alc_11]",cat,NA::b,2,missing,missing,N/A,else,else,Drank in past year,Drank alcohol - past 12 months, +alc_17,alc_17_cat2_1,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_17, [alc_17]",cat,1,2,Yes,Yes,N/A,1,Yes,Ever drank alcohol,Ever had a drink, +alc_17,alc_17_cat2_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_17, [alc_17]",cat,2,2,No,No,N/A,2,No,Ever drank alcohol,Ever had a drink, +alc_17,alc_17_cat2_NA::a,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_17, [alc_17]",cat,NA::a,2,not applicable,not applicable,N/A,6,Valid skip,Ever drank alcohol,Ever had a drink, +alc_17,alc_17_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_17, [alc_17]",cat,NA::b,2,missing,missing,N/A,"[7, 9]",Don't know (7); Refusal (8); Not stated (9),Ever drank alcohol,Ever had a drink, +alc_17,alc_17_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_17, [alc_17]",cat,NA::b,2,missing,missing,N/A,else,else,Ever drank alcohol,Ever had a drink, +alc_18,alc_18_cat2_1,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_18, [alc_18]",cat,1,2,Yes,Yes,N/A,1,Yes,Drank alcohol regularly,Regularly drank more than 12 drinks a week, +alc_18,alc_18_cat2_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_18, [alc_18]",cat,2,2,No,No,N/A,2,No,Drank alcohol regularly,Regularly drank more than 12 drinks a week, +alc_18,alc_18_cat2_NA::a,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_18, [alc_18]",cat,NA::a,2,not applicable,not applicable,N/A,6,Valid skip,Drank alcohol regularly,Regularly drank more than 12 drinks a week, +alc_18,alc_18_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_18, [alc_18]",cat,NA::b,2,missing,missing,N/A,"[7, 9]",Don't know (7); Refusal (8); Not stated (9),Drank alcohol regularly,Regularly drank more than 12 drinks a week, +alc_18,alc_18_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_18, [alc_18]",cat,NA::b,2,missing,missing,N/A,else,else,Drank alcohol regularly,Regularly drank more than 12 drinks a week, +alcdwky,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALCDWKY, [alcdwky]",cont,copy,N/A,Drinks in week,Drinks in week,drinks/week,"[0, 84]",Number of drinks,Drinks in week," Weekly consumption - (D)", +alcdwky,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALCDWKY, [alcdwky]",cont,NA::a,N/A,not applicable,not applicable,drinks/week,996,Valid skip,Drinks in week," Weekly consumption - (D)", +alcdwky,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALCDWKY, [alcdwky]",cont,NA::b,N/A,missing,missing,drinks/week,"[997, 999]",Don't know (997); Refusal (998); Not stated (999),Drinks in week," Weekly consumption - (D)", +alcdwky,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALCDWKY, [alcdwky]",cont,NA::b,N/A,missing,missing,drinks/week,else,else,Drinks in week," Weekly consumption - (D)", +ammdmva1,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1, cycle6::AMMDMVA1, [ammdmva1]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day), +ammdmva1,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1, cycle6::AMMDMVA1, [ammdmva1]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day), +ammdmva1,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1, cycle6::AMMDMVA1, [ammdmva1]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day), +ammdmva1,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1, cycle6::AMMDMVA1, [ammdmva1]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day), +ammdmva2,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2, cycle6::AMMDMVA2, [ammdmva2]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day), +ammdmva2,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2, cycle6::AMMDMVA2, [ammdmva2]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day), +ammdmva2,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2, cycle6::AMMDMVA2, [ammdmva2]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day), +ammdmva2,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2, cycle6::AMMDMVA2, [ammdmva2]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day), +ammdmva3,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3, cycle6::AMMDMVA3, [ammdmva3]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day), +ammdmva3,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3, cycle6::AMMDMVA3, [ammdmva3]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day), +ammdmva3,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3, cycle6::AMMDMVA3, [ammdmva3]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day), +ammdmva3,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3, cycle6::AMMDMVA3, [ammdmva3]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day), +ammdmva4,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4, cycle6::AMMDMVA4, [ammdmva4]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day), +ammdmva4,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4, cycle6::AMMDMVA4, [ammdmva4]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day), +ammdmva4,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4, cycle6::AMMDMVA4, [ammdmva4]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day), +ammdmva4,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4, cycle6::AMMDMVA4, [ammdmva4]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day), +ammdmva5,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5, cycle6::AMMDMVA5, [ammdmva5]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day), +ammdmva5,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5, cycle6::AMMDMVA5, [ammdmva5]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day), +ammdmva5,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5, cycle6::AMMDMVA5, [ammdmva5]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day), +ammdmva5,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5, cycle6::AMMDMVA5, [ammdmva5]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day), +ammdmva6,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6, cycle6::AMMDMVA6, [ammdmva6]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day), +ammdmva6,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6, cycle6::AMMDMVA6, [ammdmva6]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day), +ammdmva6,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6, cycle6::AMMDMVA6, [ammdmva6]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day), +ammdmva6,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6, cycle6::AMMDMVA6, [ammdmva6]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day), +ammdmva7,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7, cycle6::AMMDMVA7, [ammdmva7]",cont,copy,N/A,minutes/day,minutes/day,minutes/day,"[0, 404]",Minutes per day,Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day), +ammdmva7,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7, cycle6::AMMDMVA7, [ammdmva7]",cont,NA::a,N/A,not applicable,not applicable,minutes/day,9996,Valid skip ,Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day), +ammdmva7,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7, cycle6::AMMDMVA7, [ammdmva7]",cont,NA::b,N/A,missing,missing,minutes/day,"[9997, 9999]",Don't know (9997); Refusal (9998); Not stated (9999),Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day), +ammdmva7,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7, cycle6::AMMDMVA7, [ammdmva7]",cont,NA::b,N/A,missing,missing,minutes/day,else,else,Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day), +atc_101a,N/A,cat,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_101A, [atc_101a]",cat,copy,N/A,ATC,ATC,N/A,else,ATC,First prescription medication - ATC,First prescription medication - ATC, +atc_101a,N/A,cat,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_101A, [atc_101a]",cat,NA::a,N/A,not applicable,not applicable,N/A,9999996,Valid skip,First prescription medication - ATC,First prescription medication - ATC, +atc_101a,N/A,cat,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_101A, [atc_101a]",cat,NA::b,N/A,missing,missing,N/A,"[9999997, 9999999]",Don't know (9999997); Refusal (9999998); Not stated (9999999),First prescription medication - ATC,First prescription medication - ATC, +atc_102a,N/A,cat,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_102A, [atc_102a]",cat,copy,N/A,ATC,ATC,N/A,else,ATC,Second prescription medication - ATC,Second prescription medication - ATC, +atc_102a,N/A,cat,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_102A, [atc_102a]",cat,NA::a,N/A,not applicable,not applicable,N/A,9999996,Valid skip,Second prescription medication - ATC,Second prescription medication - ATC, +atc_102a,N/A,cat,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_102A, [atc_102a]",cat,NA::b,N/A,missing,missing,N/A,"[9999997, 9999999]",Don't know (9999997); Refusal (9999998); Not stated (9999999),Second prescription medication - ATC,Second prescription medication - ATC, +atc_103a,N/A,cat,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_103A, [atc_103a]",cat,copy,N/A,ATC,ATC,N/A,else,ATC,Third prescription medication - ATC,Third prescription medication - ATC, +atc_103a,N/A,cat,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_103A, [atc_103a]",cat,NA::a,N/A,not applicable,not applicable,N/A,9999996,Valid skip,Third prescription medication - ATC,Third prescription medication - ATC, +atc_103a,N/A,cat,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_103A, [atc_103a]",cat,NA::b,N/A,missing,missing,N/A,"[9999997, 9999999]",Don't know (9999997); Refusal (9999998); Not stated (9999999),Third prescription medication - ATC,Third prescription medication - ATC, +bpmdpbpd,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPD, [bpmdpbpd]",cont,copy,N/A,Diastolic blood pressure,Diastolic blood pressure,mmHg,"[42, 154]",Diastolic blood pressure,Diastolic blood pressure,Final average diastolic blood pressure (mmHg) - prevalence - (D), +bpmdpbpd,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPD, [bpmdpbpd]",cont,NA::a,N/A,not applicable,not applicable,mmHg,996,Valid skip,Diastolic blood pressure,Final average diastolic blood pressure (mmHg) - prevalence - (D), +bpmdpbpd,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPD, [bpmdpbpd]",cont,NA::b,N/A,missing,missing,mmHg,"[997, 999]",Don't know (997); Refusal (998); Not stated (999),Diastolic blood pressure,Final average diastolic blood pressure (mmHg) - prevalence - (D), +bpmdpbpd,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPD, [bpmdpbpd]",cont,NA::b,N/A,missing,missing,mmHg,else,else,Diastolic blood pressure,Final average diastolic blood pressure (mmHg) - prevalence - (D), +bpmdpbps,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPS, [bpmdpbps]",cont,copy,N/A,Systolic blood pressure,Systolic blood pressure,mmHg,"[73, 216]",Systolic blood pressure,Systolic blood pressure,Final average systolic blood pressure (mmHg) - prevalence - (D), +bpmdpbps,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPS, [bpmdpbps]",cont,NA::a,N/A,not applicable,not applicable,mmHg,996,Valid skip,Systolic blood pressure,Final average systolic blood pressure (mmHg) - prevalence - (D), +bpmdpbps,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPS, [bpmdpbps]",cont,NA::b,N/A,missing,missing,mmHg,"[997, 999]",Don't know (997); Refusal (998); Not stated (999),Systolic blood pressure,Final average systolic blood pressure (mmHg) - prevalence - (D), +bpmdpbps,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPS, [bpmdpbps]",cont,NA::b,N/A,missing,missing,mmHg,else,else,Systolic blood pressure,Final average systolic blood pressure (mmHg) - prevalence - (D), +clc_age,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_AGE, [clc_age]",cont,copy,N/A,Years,Years,years,"[3, 80]",Years,Age,Age at clinic visit, +clc_age,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_AGE, [clc_age]",cont,NA::a,N/A,not applicable,not applicable,years,996,Valid skip,Age,Age at clinic visit, +clc_age,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_AGE, [clc_age]",cont,NA::b,N/A,missing,missing,years,"[997, 999]",Don't know (997); Refusal (998); Not stated (999),Age,Age at clinic visit, +clc_age,N/A,cont,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_AGE, [clc_age]",cont,NA::b,N/A,missing,missing,years,else,else,Age,Age at clinic visit, +clc_sex,clc_sex_cat2_1,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_SEX, [clc_sex]",cat,1,2,Male,Male,N/A,1,Male,Sex,Sex, +clc_sex,clc_sex_cat2_2,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_SEX, [clc_sex]",cat,2,2,Female,Female,N/A,2,Female,Sex,Sex, +clc_sex,clc_sex_cat2_NA::a,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_SEX, [clc_sex]",cat,NA::a,2,not applicable,not applicable,N/A,6,Valid skip,Sex,Sex, +clc_sex,clc_sex_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_SEX, [clc_sex]",cat,NA::b,2,missing,missing,N/A,"[7, 9]",Don't know (7); Refusal (8); Not stated (9),Sex,Sex, +clc_sex,clc_sex_cat2_NA::b,cat,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_SEX, [clc_sex]",cat,NA::b,2,missing,missing,N/A,else,else,Sex,Sex, diff --git a/inst/extdata/chms/variables_chmsflow_sample.csv b/inst/extdata/chms/variables_chmsflow_sample.csv new file mode 100644 index 0000000..39190dd --- /dev/null +++ b/inst/extdata/chms/variables_chmsflow_sample.csv @@ -0,0 +1,19 @@ +variable,label,labelLong,section,subject,variableType,units,databaseStart,variableStart,description +alc_11,Drank in past year,Drank alcohol - past 12 months,Health behaviour,Alcohol,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6:: ALC_11, [alc_11]", +alc_17,Ever drank alcohol,Ever had a drink,Health behaviour,Alcohol,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_17, [alc_17]", +alc_18,Drank alcohol regularly,Regularly drank more than 12 drinks a week,Health behaviour,Alcohol,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALC_18, [alc_18]", +alcdwky,Drinks in week," Weekly consumption - (D)",Health behaviour,Alcohol,Continuous,drinks/week,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::ALCDWKY, [alcdwky]", +ammdmva1,Minutes of exercise per day (accelerometer Day 1),Total moderate-to-vigorous physical activity - Day 1 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva1, cycle6::AMMDMVA1, [ammdmva1]", +ammdmva2,Minutes of exercise per day (accelerometer Day 2),Total moderate-to-vigorous physical activity - Day 2 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva2, cycle6::AMMDMVA2, [ammdmva2]", +ammdmva3,Minutes of exercise per day (accelerometer Day 3),Total moderate-to-vigorous physical activity - Day 3 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva3, cycle6::AMMDMVA3, [ammdmva3]", +ammdmva4,Minutes of exercise per day (accelerometer Day 4),Total moderate-to-vigorous physical activity - Day 4 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva4, cycle6::AMMDMVA4, [ammdmva4]", +ammdmva5,Minutes of exercise per day (accelerometer Day 5),Total moderate-to-vigorous physical activity - Day 5 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva5, cycle6::AMMDMVA5, [ammdmva5]", +ammdmva6,Minutes of exercise per day (accelerometer Day 6),Total moderate-to-vigorous physical activity - Day 6 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva6, cycle6::AMMDMVA6, [ammdmva6]", +ammdmva7,Minutes of exercise per day (accelerometer Day 7),Total moderate-to-vigorous physical activity - Day 7 (min/day),Health behaviour,Exercise,Continuous,minutes/day,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle1::amsdmva7, cycle6::AMMDMVA7, [ammdmva7]", +atc_101a,First prescription medication - ATC,First prescription medication - ATC,Health status,Medication,Categorical,N/A,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_101A, [atc_101a]", +atc_102a,Second prescription medication - ATC,Second prescription medication - ATC,Health status,Medication,Categorical,N/A,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_102A, [atc_102a]", +atc_103a,Third prescription medication - ATC,Third prescription medication - ATC,Health status,Medication,Categorical,N/A,"cycle1_meds, cycle2_meds","cycle1_meds::ATC_103A, [atc_103a]", +bpmdpbpd,Diastolic blood pressure,Final average diastolic blood pressure (mmHg) - prevalence - (D),Health status,Blood pressure,Continuous,mmHg,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPD, [bpmdpbpd]", +bpmdpbps,Systolic blood pressure,Final average systolic blood pressure (mmHg) - prevalence - (D),Health status,Blood pressure,Continuous,mmHg,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::BPMDPBPS, [bpmdpbps]", +clc_age,Age,Age at clinic visit,Sociodemographics,Age,Continuous,years,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_AGE, [clc_age]", +clc_sex,Sex,Sex,Sociodemographics,Sex,Categorical,N/A,"cycle1, cycle2, cycle3, cycle4, cycle5, cycle6","cycle6::CLC_SEX, [clc_sex]", diff --git a/inst/extdata/demport/variable_details_DemPoRT.csv b/inst/extdata/demport/variable_details_DemPoRT.csv index bbfa198..c96e149 100644 --- a/inst/extdata/demport/variable_details_DemPoRT.csv +++ b/inst/extdata/demport/variable_details_DemPoRT.csv @@ -1,660 +1,670 @@ -variable,dummyVariable,typeEnd,databaseStart,variableStart,ICES confirmation,typeStart,recEnd,numValidCat,catLabel,catLabelLong,units,recStart,catStartLabel,variableStartShortLabel,variableStartLabel,notes,, -ADL_01,ADL_01_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help preparing meals,Needs help - preparing meals,,, -ADL_01,ADL_01_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help preparing meals,Needs help - preparing meals,,, -ADL_01,ADL_01_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help preparing meals,Needs help - preparing meals,,, -ADL_01,ADL_01_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help preparing meals,Needs help - preparing meals,,, -ADL_01,ADL_01_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help preparing meals,Needs help - preparing meals,,, -ADL_02,ADL_02_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help appointments/errands,Needs help - getting to appointments/errands,"In the 2001 CCHS, respondents were asked, ""Because of any condition or health problem, do you need the help of another person in shopping for groceries or other necessities?""",, -ADL_02,ADL_02_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help appointments/errands,Needs help - getting to appointments/errands,,, -ADL_02,ADL_02_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help appointments/errands,Needs help - getting to appointments/errands,,, -ADL_02,ADL_02_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help appointments/errands,Needs help - getting to appointments/errands,,, -ADL_02,ADL_02_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help appointments/errands,Needs help - getting to appointments/errands,,, -ADL_03,ADL_03_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help housework,Needs help - doing housework,,, -ADL_03,ADL_03_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help housework,Needs help - doing housework,,, -ADL_03,ADL_03_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help housework,Needs help - doing housework,,, -ADL_03,ADL_03_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help housework,Needs help - doing housework,,, -ADL_03,ADL_03_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help housework,Needs help - doing housework,,, -ADL_04,ADL_04_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help personal care,Needs help - personal care,,, -ADL_04,ADL_04_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help personal care,Needs help - personal care,,, -ADL_04,ADL_04_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help personal care,Needs help - personal care,,, -ADL_04,ADL_04_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help personal care,Needs help - personal care,,, -ADL_04,ADL_04_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help personal care,Needs help - personal care,,, -ADL_05,ADL_05_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help move inside house,Needs help - moving about inside house,,, -ADL_05,ADL_05_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help move inside house,Needs help - moving about inside house,,, -ADL_05,ADL_05_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help move inside house,Needs help - moving about inside house,,, -ADL_05,ADL_05_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help move inside house,Needs help - moving about inside house,,, -ADL_05,ADL_05_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help move inside house,Needs help - moving about inside house,,, -ADL_06,ADL_06_cat2_1,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, -ADL_06,ADL_06_cat2_2,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, -ADL_06,ADL_06_cat2_NA::a,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, -ADL_06,ADL_06_cat2_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, -ADL_06,ADL_06_cat2_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, -ADL_07,ADL_07_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help heavy household chores,Needs help - heavy household chores,,, -ADL_07,ADL_07_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help heavy household chores,Needs help - heavy household chores,,, -ADL_07,ADL_07_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help heavy household chores,Needs help - heavy household chores,,, -ADL_07,ADL_07_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help heavy household chores,Needs help - heavy household chores,,, -ADL_07,ADL_07_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help heavy household chores,Needs help - heavy household chores,,, -ADL_score_6,ADL_score_6_catN/A_Func::adl_score_6_fun,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,Func::adl_score_6_fun,N/A,N/A,N/A,N/A,N/A,N/A,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ADL_score_6,ADL_score_6_cat7_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,0,7,Needs help with 0 tasks,Needs help with 0 tasks,N/A,N/A,Needs help with 0 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ADL_score_6,ADL_score_6_cat7_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,1,7,Needs help with at least 1 task,Needs help with at least 1 task,N/A,N/A,Needs help with at least 1 task,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ADL_score_6,ADL_score_6_cat7_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,2,7,Needs help with at least 2 tasks,Needs help with at least 2 tasks,N/A,N/A,Needs help with at least 2 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ADL_score_6,ADL_score_6_cat7_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,3,7,Needs help with at least 3 tasks,Needs help with at least 3 tasks,N/A,N/A,Needs help with at least 3 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ADL_score_6,ADL_score_6_cat7_5,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,4,7,Needs help with at least 4 tasks,Needs help with at least 4 tasks,N/A,N/A,Needs help with at least 4 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ADL_score_6,ADL_score_6_cat7_6,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,5,7,Needs help with at least 5 tasks,Needs help with at least 5 tasks,N/A,N/A,Needs help with at least 5 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ADL_score_6,ADL_score_6_cat7_7,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,6,7,Needs help with at least 6 tasks,Needs help with at least 6 tasks,N/A,N/A,Needs help with at least 6 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ADL_score_6,ADL_score_6_cat7_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,NA::a,7,not applicable,not applicable,N/A,N/A,not applicable,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ADL_score_6,ADL_score_6_cat7_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,NA::b,7,missing,missing,N/A,N/A,missing,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, -ALCDTTM,ALCDTTM_cat3_1,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,1,3,Regular,Regular Drinker,N/A,1,Regular Drinker,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_2,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,2,3,Occasional,Occasional Drinker,N/A,2,Occasional drinker,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_3,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,3,3,No drink in last 12 months,No drink in last 12 months,N/A,3,No drink in the last 12 months,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_NA::a,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_NA::b,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_NA::b,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,1,3,Regular,Regular Drinker,N/A,1,Regular drinker,Drinker type (last 12 months),Type of drinker (12 months),"In CCHS cycles 2001, 2003, and 2005, ALCDTTM was derived from ALCDTYP in which former and never drinkers were combined into ""No drink in the last 12 months""",, -ALCDTTM,ALCDTTM_cat3_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,2,3,Occasional,Occasional Drinker,N/A,2,Occasional drinker,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,3,3,No drink in last 12 months,No drink in last 12 months,N/A,3,Former drinker,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,3,3,No drink in last 12 months,No drink in last 12 months,N/A,4,Never drank,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTTM,ALCDTTM_cat3_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Drinker type (last 12 months),Type of drinker (12 months),,, -ALCDTYP_A,ALCDTYP_cat5_1,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,1,2,Former ,Former drinker,N/A,3,Former drinker,Drinker type,Type of drinker - (D),,, -ALCDTYP_A,ALCDTYP_cat5_2,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,2,2,Other,Other drinker,N/A,"[1,2]",Other drinker,Drinker type,Type of drinker - (D),"""Other"" drinker type derived from combining ""Regular"", ""Occasional"" and ""Never"" drink categories ",, -ALCDTYP_A,ALCDTYP_cat5_2,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,2,2,Other,Other drinker,N/A,[4],Other drinker,Drinker type,Type of drinker - (D),"""Other"" drinker type derived from combining ""Regular"", ""Occasional"" and ""Never"" drink categories ",, -ALCDTYP_A,ALCDTYP_cat5_NA::a,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Drinker type,Type of drinker - (D),,, -ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Drinker type,Type of drinker - (D),,, -ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,NA::b,2,missing,missing,N/A,else,else,Drinker type,Type of drinker - (D),,, -ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,1,2,Former,Former drinker,N/A,3,Former drinker,Drinker type,Type of drinker - (D),,, -ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,2,2,Other,Other drinker,N/A,"[1,2]",Other drinker,Drinker type,Type of drinker - (D),"""Other"" drinker type derived from combining ""Regular"" and ""Occasional"" drinker categories ",, -ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Drinker type,Type of drinker - (D),,, -ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Drinker type,Type of drinker - (D),,, -ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,NA::b,2,missing,missing,N/A,else,else,Drinker type,Type of drinker - (D),,, -ALWDWKY,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]",ICES confirmed,cont,copy,N/A,drinks/week,drinks/week,drinks/week,"[0,449]",drinks per week,Drinks last week,Weekly consumption of alcohol,shown as categorical variable in CCHS 2014 cycle,, -ALWDWKY,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,drinks/week,996,not applicable (996),Drinks last week,Weekly consumption of alcohol,,, -ALWDWKY,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]",ICES confirmed,cont,NA::b,N/A,missing,missing,drinks/week,"[997,999]",don't know (997); refusal (998); not stated (999),Drinks last week,Weekly consumption of alcohol,,, -ALWDWKY,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]",ICES confirmed,cont,NA::b,N/A,missing,missing,drinks/week,else,else,Drinks last week,Weekly consumption of alcohol,,, -CCC_071,CCC_071_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,1,2,Hypertension,Hypertension,N/A,1,Yes (Do you have high blood pressure?),Hypertension,Do you have high blood pressure?,,, -CCC_071,CCC_071_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,2,2,No Hypertension,No Hypertension,N/A,2,No (Do you have high blood pressure?),Hypertension,Do you have high blood pressure?,,, -CCC_071,CCC_071_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Hypertension,Do you have high blood pressure?,,, -CCC_071,CCC_071_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Hypertension,Do you have high blood pressure?,,, -CCC_071,CCC_071_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Hypertension,Do you have high blood pressure?,,, -CCC_091,CCC_091_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,1,2,COPD/emphysema/bronchitis,COPD/emphysema/bronchitis,N/A,1,"Yes (Do you have COPD(eg bronchitis,emphysema)?)",COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, -CCC_091,CCC_091_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,2,2,No COPD/emphysema/bronchitis,No COPD/emphysema/bronchitis,N/A,2,"No (Do you have COPD(eg bronchitis,emphysema)?)",COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, -CCC_091,CCC_091_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, -CCC_091,CCC_091_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, -CCC_091,CCC_091_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, -CCC_101,CCC_101_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,1,2,Diabetes,Diabetes,N/A,1,Yes (Do you have diabetes?),Diabetes,Do you have diabetes?,,, -CCC_101,CCC_101_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,2,2,No Diabetes,No Diabetes,N/A,2,No (Do you have diabetes?),Diabetes,Do you have diabetes?,,, -CCC_101,CCC_101_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Diabetes,Do you have diabetes?,,, -CCC_101,CCC_101_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Diabetes,Do you have diabetes?,,, -CCC_101,CCC_101_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Diabetes,Do you have diabetes?,,, -CCC_111,CCC_111_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,1,2,Epilepsy,Epilepsy,N/A,1,Yes (Do you have epilepsy?),Epilepsy,Do you have epilepsy?,,, -CCC_111,CCC_111_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,2,2,No Epilepsy,No Epilepsy,N/A,2,No (Do you have epilepsy?),Epilepsy,Do you have epilepsy?,,, -CCC_111,CCC_111_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Epilepsy,Do you have epilepsy?,,, -CCC_111,CCC_111_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Epilepsy,Do you have epilepsy?,,, -CCC_111,CCC_111_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Epilepsy,Do you have epilepsy?,,, -CCC_121,CCC_121_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,1,2,Heart Disease,Heart Disease,N/A,1,Yes (Do you have heart disease?),Heart Disease,Do you have heart disease?,,, -CCC_121,CCC_121_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,2,2,No Heart Disease,No Heart Disease,N/A,2,No (Do you have heart disease?),Heart Disease,Do you have heart disease?,,, -CCC_121,CCC_121_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Heart Disease,Do you have heart disease?,,, -CCC_121,CCC_121_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Heart Disease,Do you have heart disease?,,, -CCC_121,CCC_121_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Heart Disease,Do you have heart disease?,,, -CCC_151,CCC_151_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,1,2,Stroke,Stroke,N/A,1,Yes (Do you suffer from the effects of stroke?),Stroke,Do you suffer from effects of stroke?,,, -CCC_151,CCC_151_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,2,2,No Stroke,No Stroke,N/A,2,No (Do you suffer from the effects of stroke?),Stroke,Do you suffer from effects of stroke?,,, -CCC_151,CCC_151_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Stroke,Do you suffer from effects of stroke?,,, -CCC_151,CCC_151_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Stroke,Do you suffer from effects of stroke?,,, -CCC_151,CCC_151_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Stroke,Do you suffer from effects of stroke?,,, -CCC_280,CCC_280_cat2_1,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,1,2,Has a mood disorder,Has a mood disorder,N/A,1,Yes (Do you have a mood disorder?),Mood disorder,Do you have a mood disorder?,,, -CCC_280,CCC_280_cat2_2,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,2,2,Does not have a mood disorder,Does not have a mood disorder,N/A,2,No (Do you have a mood disorder?),Mood disorder,Do you have a mood disorder?,,, -CCC_280,CCC_280_cat2_NA::a,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Mood disorder,Do you have a mood disorder?,,, -CCC_280,CCC_280_cat2_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Mood disorder,Do you have a mood disorder?,,, -CCC_280,CCC_280_cat2_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Mood disorder,Do you have a mood disorder?,,, -DHH_SEX,DHH_SEX_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,1,2,Male,Male,N/A,1,Male,Sex,Sex,,, -DHH_SEX,DHH_SEX_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,2,2,Female,Female,N/A,2,Female,Sex,Sex,,, -DHH_SEX,DHH_SEX_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Sex,Sex,,, -DHH_SEX,DHH_SEX_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Sex,Sex,,, -DHH_SEX,DHH_SEX_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Sex,Sex,,, -DHH_AGE,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",ICES altered,cont,copy,N/A,Age,continuous age,years,"[12,102]",Age,Age,Continuous age,Share files have continuous age.,, -DHH_AGE,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",ICES altered,cont,NA::a,N/A,not applicable,not applicable,years,96,not applicable,Age,Continuous age,,, -DHH_AGE,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",ICES altered,cont,NA::b,N/A,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),Age,Continuous age,,, -DHH_AGE,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",ICES altered,cont,NA::b,N/A,missing,missing,years,else,else,Age,Continuous age,,, -DHH_MS,DHH_MS_cat4_1,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,1,4,Married,Married,N/A,1,Married,Marital status,2001:Marital status - (G); [Marital status],,, -DHH_MS,DHH_MS_cat4_2,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,2,4,Common-law,Common-law,N/A,2,Common-law,Marital status,2001:Marital status - (G); [Marital status],,, -DHH_MS,DHH_MS_cat4_3,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,3,4,Widow/Sep/Div,Widow/Sep/Div,N/A,"[3,5]",Widow/Sep/Div,Marital status,2001:Marital status - (G); [Marital status],,, -DHH_MS,DHH_MS_cat4_4,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,4,4,Single/Never mar.,Single/Never mar.,N/A,6,Single/Never mar.,Marital status,2001:Marital status - (G); [Marital status],,, -DHH_MS,DHH_MS_cat4_NA::a,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::a,4,not applicable,not applicable,N/A,96,not applicable,Marital status,2001:Marital status - (G); [Marital status],,, -DHH_MS,DHH_MS_cat4_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::b,4,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),Marital status,2001:Marital status - (G); [Marital status],,, -DHH_MS,DHH_MS_cat4_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::b,4,missing,missing,N/A,else,else,Marital status,2001:Marital status - (G); [Marital status],,, -DHH_MS_A,DHH_MS_DemPoRT_cat3_1,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,1,4,Married/Common-law,Married/Common-law,N/A,"[1,2]",Married/Common-law,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, -DHH_MS_A,DHH_MS_DemPoRT_cat3_2,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,2,4,Sep/Div,Sep/Div,N/A,"[4,5]",Sep/Div,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, -DHH_MS_A,DHH_MS_DemPoRT_cat3_3,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,3,4,Widow,Widow,N/A,3,Widow,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, -DHH_MS_A,DHH_MS_DemPoRT_cat3_3,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,4,4,Single ,Single ,N/A,6,Single ,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, -DHH_MS_A,DHH_MS_DemPoRT_cat3_NA::a,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::a,4,not applicable,not applicable,N/A,96,not applicable,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, -DHH_MS_A,DHH_MS_DemPoRT_cat3_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::b,4,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, -DHH_MS_A,DHH_MS_DemPoRT_cat3_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::b,4,missing,missing,N/A,else,else,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, -EDUDR04,EDUDR04_cat4_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,1,4,Less than high school,Less than High School,N/A,1,< Than Secondary,Highest education,Highest level/education - 4 categories,Slight change in wording of categories from CCHS 2011 onwards,, -EDUDR04,EDUDR04_cat4_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,2,4,High school graduate,High School Graduate,N/A,2,Secondary grad,Highest education,Highest level/education - 4 categories,,, -EDUDR04,EDUDR04_cat4_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,3,4,Some post-secondary education,Some post-secondary education,N/A,3,Other post-sec.,Highest education,Highest level/education - 4 categories,,, -EDUDR04,EDUDR04_cat4_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,4,4,Post-secondary graduate,Post-secondary graduate,N/A,4,Post-sec. grad,Highest education,Highest level/education - 4 categories,,, -EDUDR04,EDUDR04_cat4_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,NA::a,4,not applicable,not applicable,N/A,6,not applicable,Highest education,Highest level/education - 4 categories,,, -EDUDR04,EDUDR04_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,NA::b,4,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Highest education,Highest level/education - 4 categories,CCHS 2001 does not have don't know (7) or refusal (8); CCHS 2001 ICES has don't know (7) and refusal (8),, -EDUDR04,EDUDR04_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,NA::b,4,missing,missing,N/A,else,else,Highest education,Highest level/education - 4 categories,,, -FVCDJUI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]",ICES confirmed,cont,copy,N/A,Daily juice,Daily juice,N/A,"[0,47]",Daily consumption - fruit juice - (D),Juice consumption,Daily consumption - fruit juice (D),,, -FVCDJUI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,N/A,999.6,Not applicable,Juice consumption,Daily consumption - fruit juice (D),,, -FVCDJUI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),Juice consumption,Daily consumption - fruit juice (D),Don't know (999.7) and refusal (999.8) not included in 2001 CCHS,, -FVCDJUI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,else,else,Juice consumption,Daily consumption - fruit juice (D),,, -FVCDPOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]",ICES confirmed,cont,copy,N/A,Daily potatoes,Daily potatoes,N/A,"[0,30]",Daily consumption - potatoes - (D),Potato consumption,Daily consumption - potatoes (D),,, -FVCDPOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,N/A,999.6,Not applicable,Potato consumption,Daily consumption - potatoes (D),,, -FVCDPOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),Potato consumption,Daily consumption - potatoes (D),Don't know (999.7) and refusal (999.8) not included in 2001 CCHS,, -FVCDPOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,else,else,Potato consumption,Daily consumption - potatoes (D),,, -FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,copy,N/A,Daily total fruits and vegetables,Daily total fruits and vegetables,N/A,"[0,70]",Daily consumption - total fruits and veg. - (D),Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),,, -FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,N/A,999.6,Not applicable,Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),,, -FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),Don't know (999.7) and refusal (999.8) not included in 2001 CCHS,, -FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,else,else,Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),,, -FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,N/A,9999.6,Not applicable,Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),Not applicable (9999.6) not included in 2015-2016 CCHS,, -FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,9999.9,don't know (999.7); refusal (999.8); not stated (999.9),Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),,, -GEN_01,GEN_01_cat5_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,1,5,Excellent,Excellent,N/A,1,Excellent,Self-perceived health,Self-perceived health,,, -GEN_01,GEN_01_cat5_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,2,5,Very good,Very good,N/A,2,Very good,Self-perceived health,Self-perceived health,,, -GEN_01,GEN_01_cat5_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,3,5,Good,Good,N/A,3,Good,Self-perceived health,Self-perceived health,,, -GEN_01,GEN_01_cat5_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,4,5,Fair,Fair,N/A,4,Fair,Self-perceived health,Self-perceived health,,, -GEN_01,GEN_01_cat5_5,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,5,5,Poor,Poor,N/A,5,Poor,Self-perceived health,Self-perceived health,,, -GEN_01,GEN_01_cat5_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,NA::a,5,not applicable,not applicable,N/A,6,not applicable,Self-perceived health,Self-perceived health,,, -GEN_01,GEN_01_cat5_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,NA::b,5,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Self-perceived health,Self-perceived health,,, -GEN_01,GEN_01_cat5_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,NA::b,5,missing,missing,N/A,else,else,Self-perceived health,Self-perceived health,,, -GEN_07,GEN_07_cat5_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020, cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,1,5,Not at all,Not at all,N/A,1,Not at all,Self-perceived life stress,Self-perceived life stress,,, -GEN_07,GEN_07_cat5_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,2,5,Not very,Not very,N/A,2,Not very,Self-perceived life stress,Self-perceived life stress,,, -GEN_07,GEN_07_cat5_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,3,5,A bit,A bit,N/A,3,A bit,Self-perceived life stress,Self-perceived life stress,,, -GEN_07,GEN_07_cat5_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,4,5,Quite a bit,Quite a bit,N/A,4,Quite a bit,Self-perceived life stress,Self-perceived life stress,,, -GEN_07,GEN_07_cat5_5,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,5,5,Extremely,Extremely,N/A,5,Extremely,Self-perceived life stress,Self-perceived life stress,,, -GEN_07,GEN_07_cat5_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,NA::a,5,not applicable,not applicable,N/A,6,not applicable,Self-perceived life stress,Self-perceived life stress,CCHS 2015-2018 does not have not applicable (6),, -GEN_07,GEN_07_cat5_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,NA::b,5,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Self-perceived life stress,Self-perceived life stress,,, -GEN_07,GEN_07_cat5_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,NA::b,5,missing,missing,N/A,else,else,Self-perceived life stress,Self-perceived life stress,,, -GEN_10,GEN_10_cat4_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,1,4,Very strong,Very strong,N/A,1,Very strong,Sense of belonging,Sense of belonging in the community,,, -GEN_10,GEN_10_cat4_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,2,4,Somewhat strong,Somewhat strong,N/A,2,Somewhat strong,Sense of belonging,Sense of belonging in the community,,, -GEN_10,GEN_10_cat4_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,3,4,Somewhat weak,Somewhat weak,N/A,3,Somewhat weak,Sense of belonging,Sense of belonging in the community,,, -GEN_10,GEN_10_cat4_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,4,4,Very weak,Very weak,N/A,4,Very weak,Sense of belonging,Sense of belonging in the community,,, -GEN_10,GEN_10_cat4_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,NA::a,4,not applicable,not applicable,N/A,6,not applicable,Sense of belonging,Sense of belonging in the community,,, -GEN_10,GEN_10_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,NA::b,4,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Sense of belonging,Sense of belonging in the community,,, -GEN_10,GEN_10_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,NA::b,4,missing,missing,N/A,else,else,Sense of belonging,Sense of belonging in the community,,, -HUIGHER,HUIGHER_cat3_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,1,3,No hearing prob,No hearing problem,N/A,1,No hearing prob,HUI Hearing,"Hearing problems - function code (D, G)",,, -HUIGHER,HUIGHER_cat3_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,2,3,Hear corrected,Hearing corrected,N/A,2,Hear corrected,HUI Hearing,"Hearing problems - function code (D, G)",,, -HUIGHER,HUIGHER_cat3_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,3,3,Hear n-corrected,Hearing not-corrected,N/A,3,Hear n-corrected,HUI Hearing,"Hearing problems - function code (D, G)",,, -HUIGHER,HUIGHER_cat3_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,HUI Hearing,"Hearing problems - function code (D, G)",,, -HUIGHER,HUIGHER_cat3_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing,"Hearing problems - function code (D, G)",CCHS 2001 does not include don't know (7) or refusal (8),, -HUIGHER,HUIGHER_cat3_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,NA::b,3,missing,missing,N/A,else,else,HUI Hearing,"Hearing problems - function code (D, G)",,, -HUIGHER,HUIGHER_cat3_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,1,3,No hearing prob,No hearing problem,N/A,1,No hearing prob,HUI Hearing,"Hearing problems - function code (D, G)",Shared files use hearing health status with more detailed categories. See derived variable documentation.,, -HUIGHER,HUIGHER_cat3_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,2,3,Hear corrected,Hearing corrected,N/A,"[2,3]",Hear corrected,HUI Hearing,"Hearing problems - function code (D, G)",,, -HUIGHER,HUIGHER_cat3_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,3,3,Hear n-corrected,Hearing not-corrected,N/A,"[4,6]",Hear n-corrected,HUI Hearing,"Hearing problems - function code (D, G)",,, -HUIGHER,HUIGHER_cat3_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,NA::a,3,not applicable,not applicable,N/A,96,not applicable,HUI Hearing,"Hearing problems - function code (D, G)",,, -HUIGHER,HUIGHER_cat3_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,NA::b,3,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),HUI Hearing,"Hearing problems - function code (D, G)",,, -HUIGHER,HUIGHER_cat3_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,NA::b,3,missing,missing,N/A,else,else,HUI Hearing,"Hearing problems - function code (D, G)",,, -HUI06,HUI06_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,1,2,Able to hear in a group w/o hearing aid,Able to hear in a group without a hearing aid,N/A,1,Able to hear in a group with a hearing aid,HUI Hearing,Hearing ability - in a group without a hearing aid,,, -HUI06,HUI06_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,2,2,Unable to hear in a group w/o hearing aid,Unable to hear in a group without a hearing aid,N/A,2,Unable to hear in a group with a hearing aid,HUI Hearing,Hearing ability - in a group without a hearing aid,,, -HUI06,HUI06_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing,Hearing ability - in a group without a hearing aid,,, -HUI06,HUI06_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing,Hearing ability - in a group without a hearing aid,,, -HUI06,HUI06_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing,Hearing ability - in a group without a hearing aid,,, -HUI07,HUI07_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,1,2,Able to hear in a group w/ hearing aid,Able to hear in a group with hearing aid,N/A,1,Able to hear in a group with a hearing aid,HUI Hearing,Hearing ability - in a group with a hearing aid,,, -HUI07,HUI07_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,2,2,Unable to hear in a group w/ hearing aid,Unable to hear in a group with hearing aid,N/A,2,Unable to hear in a group with a hearing aid,HUI Hearing,Hearing ability - in a group with a hearing aid,,, -HUI07,HUI07_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing,Hearing ability - in a group with a hearing aid,,, -HUI07,HUI07_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing,Hearing ability - in a group with a hearing aid,,, -HUI07,HUI07_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing,Hearing ability - in a group with a hearing aid,,, -HUI07A,HUI07_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,1,2,Yes,Yes,N/A,1,Able to hear,HUI Hearing,Hearing ability - Able to hear,,, -HUI07A,HUI07_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,2,2,No,No,N/A,2,Unable to hear,HUI Hearing,Hearing ability - Able to hear,,, -HUI07A,HUI07_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing,Hearing ability - Able to hear,,, -HUI07A,HUI07_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,NA::a,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing,Hearing ability - Able to hear,,, -HUI07A,HUI07_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing,Hearing ability - Able to hear,,, -HUI08,HUI08_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,1,2,Yes,Yes,N/A,1,Able to hear in quiet room without a hearing aid,HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, -HUI08,HUI08_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,2,2,No ,No,N/A,2,Unable to hear in quiet room without a hearing aid,HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, -HUI08,HUI08_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, -HUI08,HUI08_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::a,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, -HUI08,HUI08_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, -HUI09,HUI09_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_09, cchs2003_i::HUIC_09, [HUI_09]",ICES specific,cat,1,2,Yes,Yes,N/A,1,Able to hear in quiet room with a hearing aid,HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, -HUI09,HUI09_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,2,2,No ,No ,N/A,2,Unable to hear in quiet room with a hearing aid ,HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, -HUI09,HUI09_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, -HUI09,HUI09_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::a,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, -HUI09,HUI09_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, -HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, [HWTGBMI]",ICES confirmed,cont,copy,N/A,BMI,Body Mass Index,kg/m2,"[8.07,137.46]","BMI / self-report - (D,G)",BMI,"BMI / self-report - (D,G)","CCHS 2001 restricts BMI to ages 20-64. CCHS 2015-2016 uses adjusted BMI. Consider using using HWTGBMI_der for the most concistent BMI variable across all CCHS cycles. See documentation for BMI_fun() in derived variables for more details, or type ?BMI_fun in the console.",, -HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,kg/m2,999.6,Not applicable,BMI,"BMI / self-report - (D,G)","CCHS 2001 and 2003 codes not applicable and missing variables as 999.6 and 999.7-999.9 respectively, while CCHS 2005 onwards codes not applicable and missing variables as 999.96 and 999.7-999.99 respectively",, -HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg/m2,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),BMI,"BMI / self-report - (D,G)",Don't know (999.7) and refusal (999.8) not included in 2001 CCHS,, -HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,kg/m2,999.96,Not applicable,BMI,"BMI / self-report - (D,G)",,, -HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg/m2,"[999.97,999.99]",don't know (999.97); refusal (999.98); not stated (999.99),BMI,"BMI / self-report - (D,G)",,, -HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg/m2,else,else,BMI,"BMI / self-report - (D,G)",,, -HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADBMI, cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2015_2016_i::HWTDVBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,copy,N/A,BMI,Body Mass Index,kg/m3,"[8.07, 137.46]",BMI / self-report - (D),BMI,BMI / self-report - (D),,, -HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::a,N/A,not applicable,not applicable,kg/m4,999.6,Not applicable,BMI,BMI / self-report - (D),,, -HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::b,N/A,missing,missing,kg/m5,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),BMI,BMI / self-report - (D),,, -HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::a,N/A,not applicable,not applicable,kg/m6,999.96,Not applicable,BMI,BMI / self-report - (D),,, -HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::b,N/A,missing,missing,kg/m7,"[999.97,999.99]",don't know (999.97); refusal (999.98); not stated (999.99),BMI,BMI / self-report - (D),,, -HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::b,N/A,missing,missing,kg/m8,else,else,BMI,BMI / self-report - (D),,, -HWTGBMI_der,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGHTM, HWTGWTK]",,N/A,Func::bmi_fun,N/A,N/A,N/A,kg/m2,N/A,N/A,Derived BMI,Derived Body Mass Index,"BMI variable derived from the harmonized height and weight variables. See documentation for BMI_fun() in derived variables for more details, or type ?BMI_fun in the console.",, -HWTGBMI_der,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGHTM, HWTGWTK]",,N/A,NA::b,N/A,missing,missing,kg/m2,N/A,N/A,Derived BMI,Derived Body Mass Index,,, -HWTDBMI_der,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[HWTDHTM, HWTDWTK]",,N/A,Func::bmi_fun_D,N/A,missing,missing,kg/m2,N/A,N/A,Derived BMI,Derived Body Mass Index,,, -HWTDBMI_der,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[HWTDHTM, HWTDWTK]",,N/A,NA::b,N/A,missing,missing,kg/m2,N/A,N/A,Derived BMI,Derived Body Mass Index,,, -HWTGBMI_der_cat4,HWTGBMI_der_cat4N/A_Func::bmi_fun_cat,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,Func::bmi_fun_cat,N/A,N/A,N/A,kg/m2,N/A,N/A,Categorical BMI,Categorical body mass index,,, -HWTGBMI_der_cat4,HWTGBMI_der_cat4_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,1,4,Underweight,Underweight with BMI less than 18.5,kg/m2,1,Underweight,Categorical BMI,Categorical body mass index,,, -HWTGBMI_der_cat4,HWTGBMI_der_cat4_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,2,4,Normal weight,Normal weight with BMI between 18.5 and 25,kg/m2,2,Normal weight,Categorical BMI,Categorical body mass index,,, -HWTGBMI_der_cat4,HWTGBMI_der_cat4_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,3,4,Overweight,Overweight with BMI between 25 and 30,kg/m2,3,Overweight,Categorical BMI,Categorical body mass index,,, -HWTGBMI_der_cat4,HWTGBMI_der_cat4_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,4,4,Obese,Obese with BMI greater than 30,kg/m2,4,Obese,Categorical BMI,Categorical body mass index,,, -HWTGBMI_der_cat4,HWTGBMI_der_cat4_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,NA::a,4,not applicable,not applicable,kg/m2,NA::a,not applicable,Categorical BMI,Categorical body mass index,,, -HWTGBMI_der_cat4,HWTGBMI_der_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,NA::b,4,missing,missing,kg/m2,NA::b,missing,Categorical BMI,Categorical body mass index,,, -HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,Func::bmi_fun_cat_D,N/A,N/A,N/A,kg/m2,N/A,N/A,Categorical BMI,Categorical body mass index,,, -HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,1,4,Underweight,Underweight with BMI less than 18.5,kg/m2,1,Underweight,Categorical BMI,Categorical body mass index,,, -HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,2,4,Normal weight,Normal weight with BMI between 18.5 and 25,kg/m2,2,Normal weight,Categorical BMI,Categorical body mass index,,, -HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,3,4,Overweight,Overweight with BMI between 25 and 30,kg/m2,3,Overweight,Categorical BMI,Categorical body mass index,,, -HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,4,4,Obese,Obese with BMI greater than 30,kg/m2,4,Obese,Categorical BMI,Categorical body mass index,,, -HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,NA::a,4,not applicable,not applicable,kg/m2,NA::a,not applicable,Categorical BMI,Categorical body mass index,,, -HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,NA::b,4,missing,missing,kg/m2,NA::b,missing,Categorical BMI,Categorical body mass index,,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.118,N/A,Height,converted height (3'8 IN - 44 inches),meters,1,3'8 IN - 44 inches,Height,"Height (metres)/self-reported - (D,G)","2001 and 2003 CCHS use inches, values converted to meters to 3 decimal points",, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.143,N/A,Height,converted height (3'9 IN - 45 inches),meters,2,3'9 IN - 45 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.168,N/A,Height,converted height (3'10 IN - 46 inches),meters,3,3'10 IN - 46 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.194,N/A,Height,converted height (3'11 IN - 47 inches),meters,4,3'11 IN - 47 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.219,N/A,Height,converted height (4'0 IN - 48 inches),meters,5,4'0 IN - 48 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.245,N/A,Height,converted height (4'1 IN - 49 inches),meters,6,4'1 IN - 49 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.27,N/A,Height,converted height (4'2 IN - 50 inches),meters,7,4'2 IN - 50 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.295,N/A,Height,converted height (4'3 IN - 51 inches),meters,8,4'3 IN - 51 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.321,N/A,Height,converted height (4'4 IN - 52 inches),meters,9,4'4 IN - 52 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.346,N/A,Height,converted height (4'5 IN - 53 inches),meters,10,4'5 IN - 53 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.372,N/A,Height,converted height (4'6 IN - 54 inches),meters,11,4'6 IN - 54 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.397,N/A,Height,converted height (4'7 IN - 55 inches),meters,12,4'7 IN - 55 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.422,N/A,Height,converted height (4'8 IN - 56 inches),meters,13,4'8 IN - 56 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.448,N/A,Height,converted height (4'9 IN - 57 inches),meters,14,4'9 IN - 57 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.473,N/A,Height,converted height (4'10 IN - 58 inches),meters,15,4'10 IN - 58 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.499,N/A,Height,converted height (4'11 in - 59 inches),meters,16,4'11 in - 59 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.524,N/A,Height,converted height (5'0 IN - 60 inches),meters,17,5'0 IN - 60 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.549,N/A,Height,converted height (5'1 IN - 61 inches),meters,18,5'1 IN - 61 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.575,N/A,Height,converted height (5'2 IN - 62 inches),meters,19,5'2 IN - 62 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.6,N/A,Height,converted height (5'3 IN - 63 inches),meters,20,5'3 IN - 63 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.626,N/A,Height,converted height (5'4 IN - 64 inches),meters,21,5'4 IN - 64 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.651,N/A,Height,converted height (5'5 IN - 65 inches),meters,22,5'5 IN - 65 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.676,N/A,Height,converted height (5'6 IN - 66 inches),meters,23,5'6 IN - 66 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.702,N/A,Height,converted height (5'7 IN - 67 inches),meters,24,5'7 IN - 67 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.727,N/A,Height,converted height (5'8 IN - 68 inches),meters,25,5'8 IN - 68 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.753,N/A,Height,converted height (5'9 IN - 69 inches),meters,26,5'9 IN - 69 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.778,N/A,Height,converted height (5'10 IN - 70 inches),meters,27,5'10 IN - 70 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.803,N/A,Height,converted height (5'11 IN - 71 inches),meters,28,5'11 IN - 71 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.829,N/A,Height,converted height (6'0 IN - 72 inches),meters,29,6'0 IN - 72 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.854,N/A,Height,converted height (6'1 IN - 73 inches),meters,30,6'1 IN - 73 inches,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.93,N/A,Height,converted height (6'2 IN+ - 74+ inches),meters,31,6'2 IN+ - 74+ inches,Height,"Height (metres)/self-reported - (D,G)",74+ inches converted to 76 inches,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,NA::a,N/A,not applicable,not applicable,meters,96,not applicable,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,NA::b,N/A,missing,missing,meters,99,not stated (99),Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,NA::b,N/A,missing,missing,meters,else,else,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]",,cont,copy,N/A,Height,Height,meters,"[0.914,2.134]",Height,Height,"Height (metres)/self-reported - (D,G)",Height is a reported in meters from 2005 CCHS onwards,, -HWTGHTM,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]",,cont,NA::a,N/A,not applicable,not applicable,meters,9.996,not applicable,Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]",,cont,NA::b,N/A,missing,missing,meters,"[9.997,9.999]","don't know (9.997), refusal (9.998), not stated (9.999)",Height,"Height (metres)/self-reported - (D,G)",,, -HWTGHTM,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]",,cont,NA::b,N/A,missing,missing,meters,else,else,Height,"Height (metres)/self-reported - (D,G)",,, -HWTDHTM,N/A,cont,cchs_2001_i,[HWTADHTM],ICES specific,cont,copy,N/A,Height,Height,meters,"[0.914, 2.134]",Height,Height,Height (metres)/self-reported - (D),,, -HWTDHTM,N/A,cont,cchs_2001_i,[HWTADHTM],ICES specific,cont,NA::a,N/A,Height,Height,meters,9.996,not applicable,Height,Height (metres)/self-reported - (D),,, -HWTDHTM,N/A,cont,cchs_2001_i,[HWTADHTM],ICES specific,cont,NA::b,N/A,Height,Height,meters,"[9.997,9.999]",don't know (9.997); refusal (9.998); not stated (9.999),Height,Height (metres)/self-reported - (D),,, -HWTDHTM,N/A,cont,cchs_2001_i,[HWTADHTM],ICES specific,cont,NA::b,N/A,Height,Height,meters,else,else,Height,Height (metres)/self-reported - (D),,, -HWTDHTM,N/A,cont,"cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]",ICES specific,cont,copy,N/A,Height,Height,meters,"[0.914, 2.134]",Height,Height,Height (metres)/self-reported - (D),,, -HWTDHTM,N/A,cont,"cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]",ICES specific,cont,NA::a,N/A,not applicable,not applicable,meters,9.996,not applicable,Height,Height (metres)/self-reported - (D),,, -HWTDHTM,N/A,cont,"cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]",ICES specific,cont,NA::b,N/A,missing,missing,meters,"[9.997, 9.999]",don't know (9.997); refusal (9.998); not stated (9.999),Height,Height (metres)/self-reported - (D),,, -HWTDHTM,N/A,cont,"cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]",ICES specific,cont,NA::b,N/A,missing,missing,meters,else,else,Height,Height (metres)/self-reported - (D),,, -HWTDWTK,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]",ICES confirmed,cont,copy,N/A,Weight,Weight - kilograms,kg,***,"Weight - kilograms (D, G)",Weight,"Weight - kilograms (D, G)",,, -HWTDWTK,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,kg,999.96,not applicable,Weight,"Weight - kilograms (D, G)",,, -HWTDWTK,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg,"[999.97, 999.99]",don't know (999.97); refusal (999.98); not stated (999.99),Weight,"Weight - kilograms (D, G)",,, -HWTDWTK,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg,else,else,Weight,"Weight - kilograms (D, G)",,, -pack_years_cat,pack_years_catN/A_Func::pack_years_fun_cat,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,Func::pack_years_fun_cat,N/A,N/A,N/A,pack-years,N/A,N/A,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_1,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,1,8,0,0 pack-years,pack-years,N/A,0 pack-years,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_2,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,2,8,0 to 0.01,0 to 0.01 pack-years,pack-years,N/A,0 to 0.01 pack-years,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_3,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,3,8,0.01 to 3.0,0.01 to 3.0 pack-years,pack-years,N/A,0.01 to 3.0 pack-years,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_4,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,4,8,3.0 to 9.0,3.0 to 9.0 pack-years,pack-years,N/A,3.0 to 9.0 pack-years,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_5,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,5,8,9.0 to 16.2,9.0 to 16.2 pack-years,pack-years,N/A,9.0 to 16.2 pack-years,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_6,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,6,8,16.2 to 25.7,16.2 to 25.7 pack-years,pack-years,N/A,16.2 to 25.7 pack-years,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_7,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,7,8,25.7 to 40.0,25.7 to 40.0 pack-years,pack-years,N/A,25.7 to 40.0 pack-years,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_8,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,8,8,40.0+,40.0+ pack-years,pack-years,N/A,40.0+ pack-years,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_NA::a,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,NA::a,8,not applicable,not applicable,pack-years,N/A,not applicable,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_cat,pack_years_cat_cat8_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,NA::b,8,missing,missing,pack-years,N/A,missing,Categorical PackYears,Categorical smoking pack-years,,, -pack_years_der,N/A,cont,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[SMKDSTY_A, DHHGAGE_cont, time_quit_smoking, SMKG203_cont, SMKG207_cont, SMK_204, SMK_05B, SMK_208, SMK_05C, SMKG01C_cont, SMK_01A]",,N/A,Func::pack_years_fun,N/A,N/A,N/A,pack-years,N/A,N/A,PackYears,Smoking pack-years,PackYears variable derived from various harmonized smoking variables,, -pack_years_der,N/A,cont,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[SMKDSTY_A, DHHGAGE_cont, time_quit_smoking, SMKG203_cont, SMKG207_cont, SMK_204, SMK_05B, SMK_208, SMK_05C, SMKG01C_cont, SMK_01A]",,N/A,NA::b,N/A,missing,missing,pack-years,N/A,N/A,PackYears,Smoking pack-years,,, -PACFLEI,PACFLEI_cat_cat6_1,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,1,2,Yes,Yes,Leisure physical activity,1,Yes,Leisure phys. activity,Leisure physical activity,,, -PACFLEI,PACFLEI_cat_cat6_2,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,2,2,No,No,Leisure physical activity,2,No,Leisure phys. activity,Leisure physical activity,,, -PACFLEI,PACFLEI_cat_cat6_NA::a,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,NA::a,2,not applicable,not applicable,Leisure physical activity,6,not applicable,Leisure phys. activity,Leisure physical activity,,, -PACFLEI,PACFLEI_cat_cat6_NA::b,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,NA::b,2,missing,missing,Leisure physical activity,"[7,9]",don't know (7); refusal (8); not stated (9) ,Leisure phys. activity,Leisure physical activity,,, -PACFLEI,PACFLEI_cat_cat6_NA::b,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,NA::b,2,missing,missing,Leisure physical activity,else,else,Leisure phys. activity,Leisure physical activity,,, -RAC_6D,RAC_6D_cat_cat1,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,1,2,Yes,Yes,N/A,1,Yes,Help heavy housework,Needs help - heavy housework,,, -RAC_6D,RAC_6D_cat_cat2,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,2,2,No,No,N/A,2,No,Help heavy housework,Needs help - heavy housework,,, -RAC_6D,RAC_6D_cat_NA::a,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help heavy housework,Needs help - heavy housework,,, -RAC_6D,RAC_6D_cat_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,NA::b,2,missing,missing,N/A,"[7,9]",dont know (7); refusal (8); not stated (9),Help heavy housework,Needs help - heavy housework,,, -RAC_6D,RAC_6D_cat_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,Help heavy housework,Needs help - heavy housework,,, -SDCFIMM,SDCFIMM_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Immigrant status,Immigrant Status (D),,, -SDCFIMM,SDCFIMM_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2019","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Immigrant status,Immigrant Status (D),,, -SDCFIMM,SDCFIMM_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2020","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Immigrant status,Immigrant Status (D),,, -SDCFIMM,SDCFIMM_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2021","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Immigrant status,Immigrant Status (D),,, -SDCFIMM,SDCFIMM_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2022","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Immigrant status,Immigrant Status (D),,, -SDCGCGT,SDCGCGT_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,1,2,White,White,N/A,1,White,Ethnicity,"Cultural or racial origin - (D, G)",,, -SDCGCGT,SDCGCGT_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,2,2,Non-white,Non-white,N/A,2,Visible minority,Ethnicity,"Cultural or racial origin - (D, G)",,, -SDCGCGT,SDCGCGT_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Ethnicity,"Cultural or racial origin - (D, G)",,, -SDCGCGT,SDCGCGT_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Ethnicity,"Cultural or racial origin - (D, G)","CCHS 2001 missing don't know (7), refusal (8)",, -SDCGCGT,SDCGCGT_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,NA::b,2,missing,missing,N/A,else,else,Ethnicity,"Cultural or racial origin - (D, G)",,, -SDCDCGT_A,SDCDCGT_A_cat13_1,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,1,14,White,White,N/A,1,White,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_2,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,2,14,Black,Black,N/A,2,Black,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_3,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,3,14,Korean,Korean,N/A,3,Korean,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_4,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,4,14,Filipino,Filipino,N/A,4,Filipino,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_5,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,5,14,Japanese,Japanese,N/A,5,Japanese,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_6,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,6,14,Chinese,Chinese,N/A,6,Chinese,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_7,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,7,14,Aboriginal/N ame,Aboriginal/N ame,N/A,7,Aboriginal/N ame,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_8,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,8,14,South Asian,South Asian,N/A,8,South Asian,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_9,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,9,14,South East Asian,South East Asian,N/A,9,South East Asian,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_10,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,10,14,Arab,Arab,N/A,10,Arab,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_11,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,11,14,West Asian,West Asian,N/A,11,West Asian,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_12,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,12,14,Latin American,Latin American,N/A,12,Latin American,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_13,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,13,14,Other,Other,N/A,13,Other,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_13,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,14,14,Multiple origins,Multiple origins,N/A,14,Multiple origins,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_NA::a,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,NA::a,14,not applicable,not applicable,N/A,96,not applicable,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_NA::b,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,NA::b,14,missing,missing,N/A,"[97, 99]",don't know (97); refusal (98); not stated (99),Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_NA::b,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,NA::b,14,missing,missing,N/A,else,else,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_1,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,1,13,White only,White only,N/A,1,White only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_2,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,2,13,South Asian only,South Asian only,N/A,8,South Asian only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_3,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,3,13,Chinese only,Chinese only,N/A,6,Chinese only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_4,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,4,13,Black only,Black only,N/A,2,Black only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_5,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,5,13,Filipino only,Filipino only,N/A,4,Filipino only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_6,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,6,13,Latin American only,Latin American only,N/A,12,Latin American only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_7,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,7,13,Arab only,Arab only,N/A,10,Arab only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_8,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,8,13,Southeastern Asian only,Southeastern Asian only,N/A,9,Southeastern Asian only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_9,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,9,13,West Asian only,West Asian only,N/A,11,West Asian only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_10,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,10,13,Korean only,Korean only,N/A,3,Korean only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_11,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,11,13,Japenese only,Japenese only,N/A,5,Japenese only,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_12,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,12,13,Other racial or cultural origin (only),Other racial or cultural origin (only),N/A,13,Other racial or cultural origin (only),Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_13,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,13,13,Multiple racial or cultural origins,Multiple racial or cultural origins,N/A,14,Multiple racial or cultural origins,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_NA::a,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,NA::a,13,not applicable,not applicable,N/A,96,not applicable,Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_NA::b,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,NA::b,13,missing,missing,N/A,"[97, 99]",don't know (97); refusal (98); not stated (99),Ethnicity,Cultural or racial origin,,, -SDCDCGT_A,SDCDCGT_A_cat13_NA::b,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,NA::b,13,missing,missing,N/A,else,else,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_1,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,1,7,White,White,N/A,1,White,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_2,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,2,7,Black,Black,N/A,2,Black,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_3,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,3,7,Chinese,Chinese,N/A,6,Chinese,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_4,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,4,7,Aboriginal,Aboriginal,N/A,7,Aboriginal,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_5,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,5,7,Japanese/Korean/South East Asian/Filipino,Japanese/Korean/South East Asian/Filipino,N/A,[3],Japanese/Korean/South East Asian/Filipino,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_5,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,5,7,Japanese/Korean/South East Asian/Filipino,Japanese/Korean/South East Asian/Filipino,N/A,[5],Japanese/Korean/South East Asian/Filipino,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_5,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,5,7,Japanese/Korean/South East Asian/Filipino,Japanese/Korean/South East Asian/Filipino,N/A,[9],Japanese/Korean/South East Asian/Filipino,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_6,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,6,7,other/multiple origin/unknown/Latin American,other/multiple origin/unknown/Latin American,N/A,[12],other/multiple origin/unknown/Latin American,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_6,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,6,7,other/multiple origin/unknown/Latin American,other/multiple origin/unknown/Latin American,N/A,[14],other/multiple origin/unknown/Latin American,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_7,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,7,7,South Asian/Arab/West Asian,South Asian/Arab/West Asian,N/A,[8],South Asian/Arab/West Asian,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_7,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,7,7,South Asian/Arab/West Asian,South Asian/Arab/West Asian,N/A,"[10,11]",South Asian/Arab/West Asian,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_NA::a,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,NA::a,7,not applicable,not applicable,N/A,96,not applicable,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_NA::b,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,NA::b,7,missing,missing,N/A,"[97,99]",missing,Ethnicity,Cultural or racial origin,,, -SDCDCGT_B,SDCDCGT_B_cat7_NA::b,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,NA::b,7,missing,missing,N/A,else,else,Ethnicity,Cultural or racial origin,,, -SLP_02,SLP_02_cat5_1,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,1,5,None of the time,None of the time,N/A,1,None of the time,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02,SLP_02_cat5_2,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,2,5,Little of the time,Little of the time,N/A,2,Little of the time,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02,SLP_02_cat5_3,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,3,5,Some of the time,Some of the time,N/A,3,Some of the time,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02,SLP_02_cat5_4,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,4,5,Most of the time,Most of the time,N/A,4,Most of the time,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02,SLP_02_cat5_5,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,5,5,All the time,All the time,N/A,5,All the time,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02,SLP_02_cat5_NA::a,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,NA::a,5,not applicable,not applicable,N/A,6,not applicable,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02,SLP_02_cat5_NA::b,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,NA::b,5,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02,SLP_02_cat5_NA::b,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,NA::b,5,missing,missing,N/A,else,else,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02_A,SLP_02_A_cat3_1,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,1,3,Most of the time,Most of the time,N/A,1,Most of the time,Trouble sleeping,Freq. - trouble sleeping,CCHS 2001 has different categories from other cycles,, -SLP_02_A,SLP_02_A_cat3_2,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,2,3,Sometimes,Sometimes,N/A,2,Sometimes,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02_A,SLP_02_A_cat3_3,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,3,3,Never,Never,N/A,3,Never,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02_A,SLP_02_A_cat3_NA::a,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02_A,SLP_02_A_cat3_NA::b,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Trouble sleeping,Freq. - trouble sleeping,,, -SLP_02_A,SLP_02_A_cat3_NA::b,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Trouble sleeping,Freq. - trouble sleeping,,, -SLP_03,SLP_03_cat5_1,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,1,5,None of the time,None of the time,N/A,1,None of the time,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03,SLP_03_cat5_2,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,2,5,Little of the time,Little of the time,N/A,2,Little of the time,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03,SLP_03_cat5_3,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,3,5,Some of the time,Some of the time,N/A,3,Some of the time,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03,SLP_03_cat5_4,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,4,5,Most of the time,Most of the time,N/A,4,Most of the time,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03,SLP_03_cat5_5,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,5,5,All the time,All the time,N/A,5,All the time,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03,SLP_03_cat3_NA::a,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03,SLP_03_cat3_NA::b,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03,SLP_03_cat3_NA::b,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03_A,SLP_03_A_cat3_1,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,1,3,Most of the time,Most of the time,N/A,1,Most of the time,Sleep refreshing,Freq. - find sleep refreshing,CCHS 2001 has different categories from other cycles,, -SLP_03_A,SLP_03_A_cat3_2,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,2,3,Sometimes,Sometimes,N/A,2,Sometimes,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03_A,SLP_03_A_cat3_3,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,3,3,Never,Never,N/A,3,Never,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03_A,SLP_03_A_cat3_NA::a,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03_A,SLP_03_A_cat3_NA::b,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Sleep refreshing,Freq. - find sleep refreshing,,, -SLP_03_A,SLP_03_A_cat3_NA::b,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Sleep refreshing,Freq. - find sleep refreshing,,, -SLPG01_B,SLPG01_B_cat11_1,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,1,11,<2 hours,<2 hours,Hours,1,<2 hours,Hours sleep,No./hours spent sleeping each night,,,Possible mistake with <2 hours -SLPG01_B,SLPG01_B_cat11_2,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,2,11,3-<4 hours,3-<4 hours,Hours,2,3-<4 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_3,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,3,11,4-<5 hours,4-<5 hours,Hours,3,4-<5 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_4,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,4,11,5-<6 hours,5-<6 hours,Hours,4,5-<6 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_5,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,5,11,6-<7 hours,6-<7 hours,Hours,5,6-<7 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_6,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,6,11,7-<8 hours,7-<8 hours,Hours,6,7-<8 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_7,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,7,11,8-<9 hours,8-<9 hours,Hours,7,8-<9 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_8,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,8,11,9-<10 hours,9-<10 hours,Hours,8,9-<10 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_9,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,9,11,10-<11 hours,10-<11 hours,Hours,9,10-<11 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_10,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,10,11,11-<12 hours,11-<12 hours,Hours,10,11-<12 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_11,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,11,11,>= 12 hours,>= 12 hours,Hours,11,>= 12 hours,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_NA::a,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,NA::a,11,not applicable,not applicable,Hours,96,not applicable,Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_NA::a,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,NA::b,11,missing,missing,Hours,"[97,99]",don't know (97); refusal (98); not stated (99),Hours sleep,No./hours spent sleeping each night,,, -SLPG01_B,SLPG01_B_cat11_NA::b,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,NA::b,11,missing,missing,Hours,else,else,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_1,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_005",ICES specific,cat,1,12,<2 hours,<2 hours,Hours,1,<2 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_2,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_006",ICES specific,cat,2,12,2-<3 hours,2-<3 hours,Hours,2,2-<3 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_3,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_007",ICES specific,cat,3,12,3-<4 hours,3-<4 hours,Hours,3,3-<4 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_4,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_008",ICES specific,cat,4,12,4-<5 hours,4-<5 hours,Hours,4,4-<5 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_5,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_009",ICES specific,cat,5,12,5-<6 hours,5-<6 hours,Hours,5,5-<6 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_6,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_010",ICES specific,cat,6,12,6-<7 hours,6-<7 hours,Hours,6,6-<7 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_7,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_011",ICES specific,cat,7,12,7-<8 hours,7-<8 hours,Hours,7,7-<8 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_8,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_012",ICES specific,cat,8,12,8-<9 hours,8-<9 hours,Hours,8,8-<9 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_9,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_013",ICES specific,cat,9,12,9-<10 hours,9-<10 hours,Hours,9,9-<10 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_10,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_014",ICES specific,cat,10,12,10-<11 hours,10-<11 hours,Hours,10,10-<11 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_11,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_015",ICES specific,cat,11,12,11-<12 hours,11-<12 hours,Hours,11,11-<12 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_12,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_016",ICES specific,cat,12,12,>= 12 hours,>= 12 hours,Hours,12,>= 12 hours,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_NA::a,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_017",ICES specific,cat,NA::a,12,not applicable,not applicable,Hours,96,not applicable,Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_NA::a,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_018",ICES specific,cat,NA::b,12,missing,missing,Hours,"[97,99]",don't know (97); refusal (98); not stated (99),Hours sleep,No./hours spent sleeping each night,,, -SPLG01_C,SPLG01_C_cat12_NA::b,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_019",ICES specific,cat,NA::b,12,missing,missing,Hours,else,else,Hours sleep,No./hours spent sleeping each night,,, -SMK_01A,SMK_01A_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,1,2,yes,yes,N/A,1,Yes,s100,"In lifetime, smoked 100 or more cigarettes",,, -SMK_01A,SMK_01A_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,2,2,no,no,N/A,2,No,s100,"In lifetime, smoked 100 or more cigarettes",,, -SMK_01A,SMK_01A_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,s100,"In lifetime, smoked 100 or more cigarettes",,, -SMK_01A,SMK_01A_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),s100,"In lifetime, smoked 100 or more cigarettes",,, -SMK_01A,SMK_01A_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,s100,"In lifetime, smoked 100 or more cigarettes",,, -SMK_05B,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]",ICES confirmed,cont,copy,N/A,Cigarettes/day - occasional,# of cigarettes smoked daily - daily smoker,cigarettes,"[1,99]",# of cigarettes smoked daily - occasional smoker,cigdayo,# of cigarettes smoked daily - occasional smoker,,, -SMK_05B,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,cigarettes,996,not applicable,cigdayo,# of cigarettes smoked daily - occasional smoker,,, -SMK_05B,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,"[997,999]",don't know (997); refusal (998); not stated (999),cigdayo,# of cigarettes smoked daily - occasional smoker,,, -SMK_05B,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,else,else,cigdayo,# of cigarettes smoked daily - occasional smoker,,, -SMK_05C,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]",ICES confirmed,cont,copy,N/A,# days smoked at least 1 cigarette,# days smoked at least 1 cigarette,days,"[0,31]",# days smoked at least 1 cigarette,Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",,, -SMK_05C,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,days,96,not applicable,Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",,, -SMK_05C,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]",ICES confirmed,cont,NA::b,N/A,missing,missing,days,"[97,99]",don't know (97); refusal (98); not stated (99),Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",,, -SMK_05C,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]",ICES confirmed,cont,NA::b,N/A,missing,missing,days,else,else,Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",,, -SMK_09A_A,SMK_09A_A_cat4_1,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,1,4,<1 year,Less than one year ago,years,1,Less than one year ago,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_A,SMK_09A_A_cat4_2,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,2,4,1 to 2 years,1 year to 2 years ago,years,2,1 year to 2 years ago,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_A,SMK_09A_A_cat4_3,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,3,4,3 to 5 years,3 years to 5 years ago,years,3,3 years to 5 years ago,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_A,SMK_09A_A_cat4_4,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,4,4,>5 years,More than 5 years ago,years,4,More than 5 years ago,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_A,SMK_09A_A_cat4_NA::a,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,NA::a,4,not applicable,not applicable,years,6,not applicable,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_A,SMK_09A_A_cat4_NA::b,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,NA::b,4,missing,missing,years,"[7,9]",don't know (7); refusal (8); not stated (9),stpd,When did you stop smoking daily - former daily,,, -SMK_09A_A,SMK_09A_A_cat4_NA::b,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,NA::b,4,missing,missing,years,else,else,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_B,SMK_09A_B_cat4_1,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,1,4,<1 year,Less than one year ago,years,1,Less than 1 year,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_B,SMK_09A_B_cat4_2,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,2,4,1 to <2 years,1 year to less than 2 years ago,years,2,1 to <2 years,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_B,SMK_09A_B_cat4_3,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2020","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,3,4,2 to <3 years,2 years to less than 3 years ago,years,3,2 to <3 years,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_B,SMK_09A_B_cat4_4,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2021","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,4,4,>= 3 years,3 or more years ago,years,4,3 years or more,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_B,SMK_09A_B_cat4_NA::a,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2022","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,NA::a,4,not applicable,not applicable,years,6,not applicable,stpd,When did you stop smoking daily - former daily,,, -SMK_09A_B,SMK_09A_B_cat4_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2023","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,NA::b,4,missing,missing,years,"[7,9]",don't know (7); refusal (8); not stated (9),stpd,When did you stop smoking daily - former daily,,, -SMK_09A_B,SMK_09A_B_cat4_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2024","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,NA::b,4,missing,missing,years,else,else,stpd,When did you stop smoking daily - former daily,,, -SMK_204,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]",ICES confirmed,cont,copy,N/A,Cigarettes/day - daily,# of cigarettes smoked daily - daily smoker,cigarettes,"[1,99]",# of cigarettes smoked daily - daily smoker,cigdayd,# of cigarettes smoked daily - daily smoker,,, -SMK_204,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,cigarettes,996,not applicable,cigdayd,# of cigarettes smoked daily - daily smoker,,, -SMK_204,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,"[997,999]",don't know (997); refusal (998); not stated (999),cigdayd,# of cigarettes smoked daily - daily smoker,,, -SMK_204,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,else,else,cigdayd,# of cigarettes smoked daily - daily smoker,,, -SMK_208,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]",ICES confirmed,cont,copy,N/A,Cigarettes/day - former daily,Cigarettes/day - former daily,cigarettes,"[1,99]",# of cigarettes smoke each day - former daily,# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,,, -SMK_208,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,cigarettes,996,not applicable,# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,,, -SMK_208,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,"[997,999]",don't know (997); refusal (998); not stated (999),# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,,, -SMK_208,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,else,else,# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,,, -SMKDSTY_A,SMKDSTY_A_cat6_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,1,6,Daily,Daily smoker,N/A,1,Daily,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, -SMKDSTY_A,SMKDSTY_A_cat6_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,2,6,Occasional (former daily),Former daily current occasional smoker,N/A,2,Occasional,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, -SMKDSTY_A,SMKDSTY_A_cat6_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,3,6,Always occasional,Never daily current occasional smoker,N/A,3,Always occasional,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, -SMKDSTY_A,SMKDSTY_A_cat6_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,4,6,Former daily,Former daily current nonsmoker,N/A,4,Former daily,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, -SMKDSTY_A,SMKDSTY_A_cat6_5,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,5,6,Former occasional,Never daily current nonsmoker (former occasional),N/A,5,Former occasional,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, -SMKDSTY_A,SMKDSTY_A_cat6_6,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,6,6,Never smoked,Never smoked,N/A,6,Never smoked,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, -SMKDSTY_A,SMKDSTY_A_cat6_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,NA::a,6,not applicable,not applicable,N/A,96,not applicable,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, -SMKDSTY_A,SMKDSTY_A_cat6_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,NA::b,6,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, -SMKDSTY_A,SMKDSTY_A_cat6_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,NA::b,6,missing,missing,N/A,else,else,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, -SMKDSTY_cat5,SMKDSTY_cat5_1,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,1,5,Daily,Current daily smoker,N/A,1,Daily,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, -SMKDSTY_cat5,SMKDSTY_cat5_2,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,2,5,Occasional,Current occasional smoker,N/A,2,Occasional,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, -SMKDSTY_cat5,SMKDSTY_cat5_3,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,3,5,Former daily,Former daily smoker,N/A,3,Former daily,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, -SMKDSTY_cat5,SMKDSTY_cat5_4,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,4,5,Former occasional,Former occasional,N/A,"[4,5]",Former occasional,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never","SMKDSTY_cat5 is a 5 category variable for smoking status for cycles up to 2018. Prior to 2015, 'occasional' and 'always occasional' are combined to form the current 'occasional' category. 2015 onwards, 'former occasional' and 'experimental' are combined to form the current 'former occasional' category",, -SMKDSTY_cat5,SMKDSTY_cat5_5,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,5,5,Never smoked,Never smoked,N/A,6,Never smoked,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, -SMKDSTY_cat5,SMKDSTY_cat5_NA::a,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,NA::a,5,not applicable,not applicable,N/A,96,not applicable,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, -SMKDSTY_cat5,SMKDSTY_cat5_NA::b,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,NA::b,5,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, -SMKDSTY_cat5,SMKDSTY_cat5_NA::b,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,NA::b,5,missing,missing,N/A,else,else,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, -SMKG01C_A,SMKG01C_A_cat10_1,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,1,10,5 To 11 Years,age smoked first whole cigarette (5 to 11),years,1,5 To 11 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_2,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,2,10,12 To 14 Years,age smoked first whole cigarette (12 to 14),years,2,12 To 14 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_3,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,3,10,15 To 19 Years,age smoked first whole cigarette (18 to 19),years,3,15 To 19 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_4,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,4,10,20 To 24 Years,age smoked first whole cigarette (20 to 24),years,4,20 To 24 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_5,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,5,10,25 To 29 Years,age smoked first whole cigarette (25 to 29),years,5,25 To 29 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_6,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,6,10,30 To 34 Years,age smoked first whole cigarette (30 to 34),years,6,30 To 34 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_7,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,7,10,35 To 39 Years,age smoked first whole cigarette (35 to 39),years,7,35 To 39 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_8,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,8,10,40 To 44 Years,age smoked first whole cigarette (40 to 44),years,8,40 To 44 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_9,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,9,10,45 To 49 Years,age smoked first whole cigarette (45 to 49),years,9,45 To 49 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_10,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,10,10,50 Years or more,age smoked first whole cigarette (50 plus),years,10,50 Years or more,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,NA::a,10,not applicable,not applicable,years,96,not applicable,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,NA::b,10,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,NA::b,10,missing,missing,years,else,else,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,1,10,5 To 11 Years,age smoked first whole cigarette (5 to 11),years,"[5,12)",5 To 11 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,2,10,12 To 14 Years,age smoked first whole cigarette (12 to 14),years,"[12,15)",12 To 14 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,3,10,15 To 19 Years,age smoked first whole cigarette (18 to 19),years,"[15,20)",15 To 19 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_4,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,4,10,20 To 24 Years,age smoked first whole cigarette (20 to 24),years,"[20,25)",20 To 24 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_5,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,5,10,25 To 29 Years,age smoked first whole cigarette (25 to 29),years,"[25,30)",25 To 29 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_6,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,6,10,30 To 34 Years,age smoked first whole cigarette (30 to 34),years,"[30,35)",30 To 34 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_7,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,7,10,35 To 39 Years,age smoked first whole cigarette (35 to 39),years,"[35,40)",35 To 39 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_8,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,8,10,40 To 44 Years,age smoked first whole cigarette (40 to 44),years,"[40,45)",40 To 44 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_9,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,9,10,45 To 49 Years,age smoked first whole cigarette (45 to 49),years,"[45,50)",45 To 49 Years,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_10,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,10,10,50 Years or more,age smoked first whole cigarette (50 plus),years,"[50,80]",50 Years or more,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,NA::a,10,not applicable,not applicable,years,996,not applicable,agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,NA::b,10,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agec1,Age smoked first cigarette,,, -SMKG01C_A,SMKG01C_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,NA::b,10,missing,missing,years,else,else,agec1,Age smoked first cigarette,,, -SMKG01C_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]",ICES altered,cont,copy,N/A,agec1,agec1,years,"[5,80]",agec1,agec1,Age smoked first cigarette,,, -SMKG01C_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]",ICES altered,cont,NA::a,N/A,not applicable,not applicable,years,996,not applicable,agec1,Age smoked first cigarette,,, -SMKG01C_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]",ICES altered,cont,NA::b,N/A,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agec1,Age smoked first cigarette,,, -SMKG01C_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]",ICES altered,cont,NA::b,N/A,missing,missing,years,else,else,agec1,Age smoked first cigarette,,, -SMKG09C,SMKG09C_cat3_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,1,3,3 to 5 years,3 to 5 years,years,"[3,6)",3 to 5 years,stpdy,Years since stopped smoking daily - former daily,,, -SMKG09C,SMKG09C_cat3_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,2,3,6 to 10 years,6 to 10 years,years,"[6,11)",6 to 10 years,stpdy,Years since stopped smoking daily - former daily,,, -SMKG09C,SMKG09C_cat3_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,3,3,11+ years,11 or more years,years,"[11,82]",11 or more years,stpdy,Years since stopped smoking daily - former daily,,, -SMKG09C,SMKG09C_cat3_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,NA::a,3,not applicable,not applicable,years,996,not applicable,stpdy,Years since stopped smoking daily - former daily,,, -SMKG09C,SMKG09C_cat3_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,NA::b,3,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),stpdy,Years since stopped smoking daily - former daily,,, -SMKG09C,SMKG09C_cat3_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,NA::b,3,missing,missing,years,else,else,stpdy,Years since stopped smoking daily - former daily,,, -SMKG203_A,SMKG203_A_cat10_1,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,1,10,5 To 11 Years,age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_2,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,2,10,12 To 14 Years,age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_3,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,3,10,15 to 19 Years,age (15 to 19) started smoking daily - daily smoker,years,3,15 to 19 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_4,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,4,10,20 To 24 Years,age (20 to 24) started smoking daily - daily smoker,years,4,20 To 24 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_5,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,5,10,25 To 29 Years,age (25 to 29) started smoking daily - daily smoker,years,5,25 To 29 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_6,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,6,10,30 To 34 Years,age (30 to 34) started smoking daily - daily smoker,years,6,30 To 34 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_7,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,7,10,35 To 39 Years,age (35 to 39) started smoking daily - daily smoker,years,7,35 To 39 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_8,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,8,10,40 To 44 Years,age (40 to 44) started smoking daily - daily smoker,years,8,40 To 44 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_9,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,9,10,45 To 49 Years,age (45 to 49) started smoking daily - daily smoker,years,9,45 To 49 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_10,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,10,10,50 Years or more,age (50 or more) started smoking daily - daily smoker,years,10,50 Years or more,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,NA::a,10,not applicable,not applicable,years,96,not applicable,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,NA::b,10,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,NA::b,10,missing,missing,years,else,else,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,1,10,5 To 11 Years,age (5 to 11) started smoking daily - daily smoker,years,"[5,12)",5 To 11 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,2,10,12 To 14 Years,age (12 to 14) started smoking daily - daily smoker,years,"[12,15)",12 To 14 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,3,10,15 to 19 Years,age (15 to 19) started smoking daily - daily smoker,years,"[15,20)",15 to 19 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_4,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,4,10,20 To 24 Years,age (20 to 24) started smoking daily - daily smoker,years,"[20,25)",20 To 24 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_5,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,5,10,25 To 29 Years,age (25 to 29) started smoking daily - daily smoker,years,"[25,30)",25 To 29 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_6,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,6,10,30 To 34 Years,age (30 to 34) started smoking daily - daily smoker,years,"[30,35)",30 To 34 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_7,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,7,10,35 To 39 Years,age (35 to 39) started smoking daily - daily smoker,years,"[35,40)",35 To 39 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_8,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,8,10,40 To 44 Years,age (40 to 44) started smoking daily - daily smoker,years,"[40,45)",40 To 44 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_9,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,9,10,45 To 49 Years,age (45 to 49) started smoking daily - daily smoker,years,"[45,50)",45 To 49 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_10,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,10,10,50 Years or more,age (50 or more) started smoking daily - daily smoker,years,"[50,84]",50 Years or more,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,NA::a,10,not applicable,not applicable,years,996,not applicable,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,NA::b,10,missing,missing,years,"[997,999]",don't know (97); refusal (98); not stated (99),agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_A,SMKG203_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,NA::b,10,missing,missing,years,else,else,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,8,N/A,agecigd,converted categorical age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,13,N/A,agecigd,converted categorical age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,17,N/A,agecigd,converted categorical age (15 to 19) started smoking daily - daily smoker,years,3,15 to 19 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,22,N/A,agecigd,converted categorical age (20 to 24) started smoking daily - daily smoker,years,4,20 To 24 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,27,N/A,agecigd,converted categorical age (25 to 29) started smoking daily - daily smoker,years,5,25 To 29 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,32,N/A,agecigd,converted categorical age (30 to 34) started smoking daily - daily smoker,years,6,30 To 34 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,37,N/A,agecigd,converted categorical age (35 to 39) started smoking daily - daily smoker,years,7,35 To 39 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,42,N/A,agecigd,converted categorical age (40 to 44) started smoking daily - daily smoker,years,8,40 To 44 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,47,N/A,agecigd,converted categorical age (45 to 49) started smoking daily - daily smoker,years,9,45 To 49 Years,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,55,N/A,agecigd,converted categorical age (50 or more) started smoking daily - daily smoker,years,10,50 Years or more,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,NA::a,N/A,not applicable,not applicable,years,96,not applicable,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,NA::b,N/A,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,NA::b,N/A,missing,missing,years,else,else,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]",ICES altered,cont,copy,N/A,agecigd,agecigd,years,"[5,84]",agecigd,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]",ICES altered,cont,NA::a,N/A,not applicable,not applicable,years,996,not applicable,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]",ICES altered,cont,NA::b,N/A,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG203_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]",ICES altered,cont,NA::b,N/A,missing,missing,years,else,else,agecigd,Age started to smoke daily - daily smoker (G),,, -SMKG207_A,SMKG207_A_cat10_1,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,1,10,5 To 11 Years,age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_2,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,2,10,12 To 14 Years,age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_3,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,3,10,15 to 19 Years,age (15 to 19) started smoking daily - daily smoker,years,3,15 to 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_4,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,4,10,20 To 24 Years,age (20 to 24) started smoking daily - daily smoker,years,4,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_5,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,5,10,25 To 29 Years,age (25 to 29) started smoking daily - daily smoker,years,5,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_6,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,6,10,30 To 34 Years,age (30 to 34) started smoking daily - daily smoker,years,6,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_7,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,7,10,35 To 39 Years,age (35 to 39) started smoking daily - daily smoker,years,7,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_8,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,8,10,40 To 44 Years,age (40 to 44) started smoking daily - daily smoker,years,8,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_9,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,9,10,45 To 49 Years,age (45 to 49) started smoking daily - daily smoker,years,9,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_10,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,10,10,50 Years or more,age (50 or more) started smoking daily - daily smoker,years,10,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,NA::a,10,not applicable,not applicable,years,96,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,NA::b,10,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,NA::b,10,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,1,10,5 To 11 Years,age (5 to 11) started smoking daily - daily smoker,years,"[5,12)",5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,2,10,12 To 14 Years,age (12 to 14) started smoking daily - daily smoker,years,"[12,15)",12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,3,10,15 to 19 Years,age (15 to 19) started smoking daily - daily smoker,years,"[15,20)",15 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_4,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,4,10,20 To 24 Years,age (20 to 24) started smoking daily - daily smoker,years,"[20,25)",20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_5,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,5,10,25 To 29 Years,age (25 to 29) started smoking daily - daily smoker,years,"[25,30)",25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_6,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,6,10,30 To 34 Years,age (30 to 34) started smoking daily - daily smoker,years,"[30,35)",30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_7,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,7,10,35 To 39 Years,age (35 to 39) started smoking daily - daily smoker,years,"[35,40)",35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_8,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,8,10,40 To 44 Years,age (40 to 44) started smoking daily - daily smoker,years,"[40,45)",40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_9,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,9,10,45 To 49 Years,age (45 to 49) started smoking daily - daily smoker,years,"[45,50)",45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_10,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,10,10,50 Years or more,age (50 or more) started smoking daily - daily smoker,years,"[50,80]",50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::a,10,not applicable,not applicable,years,996,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::b,10,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_A,SMKG207_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::b,10,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_1,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,1,11,5 To 11 Years,age (5 to 11) started smoking daily - former daily smoker,years,1,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_2,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,2,11,12 To 14 Years,age (12 to 14) started smoking daily - former daily smoker,years,2,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_3,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,3,11,15 To 17 Years,age (15 to 17) started smoking daily - former daily smoker,years,3,15 To 17 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_4,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,4,11,18 To 19 Years,age (18 to 19) started smoking daily - former daily smoker,years,4,18 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_5,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,5,11,20 To 24 Years,age (20 to 24) started smoking daily - former daily smoker,years,5,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_6,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,6,11,25 To 29 Years,age (25 to 29) started smoking daily - former daily smoker,years,6,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_7,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,7,11,30 To 34 Years,age (30 to 34) started smoking daily - former daily smoker,years,7,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_8,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,8,11,35 To 39 Years,age (35 to 39) started smoking daily - former daily smoker,years,8,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_9,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,9,11,40 To 44 Years,age (40 to 44) started smoking daily - former daily smoker,years,9,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_10,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,10,11,45 To 49 Years,age (45 to 49) started smoking daily - former daily smoker,years,10,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_11,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,11,11,50 Years or more,age (50 plus) started smoking daily - former daily smoker,years,11,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_NA::a,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::a,11,not applicable,not applicable,years,96,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_NA::b,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::b,11,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_NA::b,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::b,11,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,1,11,5 To 11 Years,age (5 to 11) started smoking daily - former daily smoker,years,"[5,12)",5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,2,11,12 To 14 Years,age (12 to 14) started smoking daily - former daily smoker,years,"[12,15)",12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,3,11,15 To 17 Years,age (15 to 17) started smoking daily - former daily smoker,years,"[15,18)",15 To 17 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_4,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,4,11,18 To 19 Years,age (18 to 19) started smoking daily - former daily smoker,years,"[18,20)",18 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_5,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,5,11,20 To 24 Years,age (20 to 24) started smoking daily - former daily smoker,years,"[20,25)",20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_6,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,6,11,25 To 29 Years,age (25 to 29) started smoking daily - former daily smoker,years,"[25,30)",25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_7,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,7,11,30 To 34 Years,age (30 to 34) started smoking daily - former daily smoker,years,"[30,35)",30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_8,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,8,11,35 To 39 Years,age (35 to 39) started smoking daily - former daily smoker,years,"[35,40)",35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_9,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,9,11,40 To 44 Years,age (40 to 44) started smoking daily - former daily smoker,years,"[40,45)",40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_10,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,10,11,45 To 49 Years,age (45 to 49) started smoking daily - former daily smoker,years,"[45,50)",45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_11,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,11,11,50 Years or more,age (50 plus) started smoking daily - former daily smoker,years,"[50,80]",50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,NA::a,11,not applicable,not applicable,years,996,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,NA::b,11,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_B,SMKG207_B_cat11_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,NA::b,11,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,8,N/A,agecigd,converted categorical age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,13,N/A,agecigd,converted categorical age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,17,N/A,agecigd,converted categorical age (15 to 19) started smoking daily - daily smoker,years,3,15 to 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,22,N/A,agecigd,converted categorical age (20 to 24) started smoking daily - daily smoker,years,4,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,27,N/A,agecigd,converted categorical age (25 to 29) started smoking daily - daily smoker,years,5,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,32,N/A,agecigd,converted categorical age (30 to 34) started smoking daily - daily smoker,years,6,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,37,N/A,agecigd,converted categorical age (35 to 39) started smoking daily - daily smoker,years,7,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,42,N/A,agecigd,converted categorical age (40 to 44) started smoking daily - daily smoker,years,8,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,47,N/A,agecigd,converted categorical age (45 to 49) started smoking daily - daily smoker,years,9,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,55,N/A,agecigd,converted categorical age (50 or more) started smoking daily - daily smoker,years,10,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,NA::a,N/A,not applicable,not applicable,years,96,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,NA::b,N/A,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,NA::b,N/A,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,8,N/A,agecigd,converted categorical age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,13,N/A,agecigd,converted categorical age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,16,N/A,agecigd,converted categorical age (15 to 17) started smoking daily - daily smoker,years,3,15 To 17 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,18.5,N/A,agecigd,converted categorical age (18 to 19) started smoking daily - daily smoker,years,4,18 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,22,N/A,agecigd,converted categorical age (20 to 24) started smoking daily - daily smoker,years,5,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,27,N/A,agecigd,converted categorical age (25 to 29) started smoking daily - daily smoker,years,6,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,32,N/A,agecigd,converted categorical age (30 to 34) started smoking daily - daily smoker,years,7,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,37,N/A,agecigd,converted categorical age (35 to 39) started smoking daily - daily smoker,years,8,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,42,N/A,agecigd,converted categorical age (40 to 44) started smoking daily - daily smoker,years,9,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,47,N/A,agecigd,converted categorical age (45 to 49) started smoking daily - daily smoker,years,10,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,55,N/A,agecigd,converted categorical age (50 plus) started smoking daily - daily smoker,years,11,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::a,N/A,not applicable,not applicable,years,96,not applicable,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::b,N/A,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::b,N/A,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,copy,N/A,agecigd,agecigd,years,"[5,80]",agecigfd,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::a,N/A,not applicable,not applicable,years,996,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::b,N/A,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::b,N/A,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,Func::SMKG207_fun,N/A,N/A,N/A,N/A,N/A,N/A,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,8,N/A,agecigd,converted categorical age (5 to 11) started smoking daily - daily smoker,years,N/A,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,13,N/A,agecigd,converted categorical age (12 to 14) started smoking daily - daily smoker,years,N/A,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,16,N/A,agecigd,converted categorical age (15 to 17) started smoking daily - daily smoker,years,N/A,15 To 17 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,18.5,N/A,agecigd,converted categorical age (18 to 19) started smoking daily - daily smoker,years,N/A,18 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,22,N/A,agecigd,converted categorical age (20 to 24) started smoking daily - daily smoker,years,N/A,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,27,N/A,agecigd,converted categorical age (25 to 29) started smoking daily - daily smoker,years,N/A,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,32,N/A,agecigd,converted categorical age (30 to 34) started smoking daily - daily smoker,years,N/A,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,37,N/A,agecigd,converted categorical age (35 to 39) started smoking daily - daily smoker,years,N/A,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,42,N/A,agecigd,converted categorical age (40 to 44) started smoking daily - daily smoker,years,N/A,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,47,N/A,agecigd,converted categorical age (45 to 49) started smoking daily - daily smoker,years,N/A,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,55,N/A,agecigd,converted categorical age (50 plus) started smoking daily - daily smoker,years,N/A,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,NA::a,N/A,not applicable,not applicable,years,N/A,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, -SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,NA::b,N/A,missing,missing,years,N/A,missing,agecigfd,Age started to smoke daily - former daily smoker,,, \ No newline at end of file +"variable","dummyVariable","typeEnd","databaseStart","variableStart","ICES confirmation","typeStart","recEnd","numValidCat","catLabel","catLabelLong","units","recStart","catStartLabel","variableStartShortLabel","variableStartLabel","notes","...18","...19","uid","uid_detail","date_start","date_end" +"ADL_01","ADL_01_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]","ICES confirmed","cat","1",2,"Yes","Yes","","1","Yes","Help preparing meals","Needs help - preparing meals","",,"","v_001","d_00001","","" +"ADL_01","ADL_01_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]","ICES confirmed","cat","2",2,"No","No","","2","No","Help preparing meals","Needs help - preparing meals","",,"","v_001","d_00002","","" +"ADL_01","ADL_01_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Help preparing meals","Needs help - preparing meals","",,"","v_001","d_00003","","" +"ADL_01","ADL_01_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Help preparing meals","Needs help - preparing meals","",,"","v_001","d_00004","","" +"ADL_01","ADL_01_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Help preparing meals","Needs help - preparing meals","",,"","v_001","d_00005","","" +"ADL_02","ADL_02_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]","ICES confirmed","cat","1",2,"Yes","Yes","","1","Yes","Help appointments/errands","Needs help - getting to appointments/errands","In the 2001 CCHS, respondents were asked, ""Because of any condition or health problem, do you need the help of another person in shopping for groceries or other necessities?""",,"","v_002","d_00006","","" +"ADL_02","ADL_02_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]","ICES confirmed","cat","2",2,"No","No","","2","No","Help appointments/errands","Needs help - getting to appointments/errands","",,"","v_002","d_00007","","" +"ADL_02","ADL_02_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Help appointments/errands","Needs help - getting to appointments/errands","",,"","v_002","d_00008","","" +"ADL_02","ADL_02_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Help appointments/errands","Needs help - getting to appointments/errands","",,"","v_002","d_00009","","" +"ADL_02","ADL_02_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Help appointments/errands","Needs help - getting to appointments/errands","",,"","v_002","d_00010","","" +"ADL_03","ADL_03_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]","ICES confirmed","cat","1",2,"Yes","Yes","","1","Yes","Help housework","Needs help - doing housework","",,"","v_003","d_00011","","" +"ADL_03","ADL_03_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]","ICES confirmed","cat","2",2,"No","No","","2","No","Help housework","Needs help - doing housework","",,"","v_003","d_00012","","" +"ADL_03","ADL_03_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Help housework","Needs help - doing housework","",,"","v_003","d_00013","","" +"ADL_03","ADL_03_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Help housework","Needs help - doing housework","",,"","v_003","d_00014","","" +"ADL_03","ADL_03_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Help housework","Needs help - doing housework","",,"","v_003","d_00015","","" +"ADL_04","ADL_04_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]","ICES confirmed","cat","1",2,"Yes","Yes","","1","Yes","Help personal care","Needs help - personal care","",,"","v_004","d_00016","","" +"ADL_04","ADL_04_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]","ICES confirmed","cat","2",2,"No","No","","2","No","Help personal care","Needs help - personal care","",,"","v_004","d_00017","","" +"ADL_04","ADL_04_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Help personal care","Needs help - personal care","",,"","v_004","d_00018","","" +"ADL_04","ADL_04_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Help personal care","Needs help - personal care","",,"","v_004","d_00019","","" +"ADL_04","ADL_04_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Help personal care","Needs help - personal care","",,"","v_004","d_00020","","" +"ADL_05","ADL_05_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]","ICES confirmed","cat","1",2,"Yes","Yes","","1","Yes","Help move inside house","Needs help - moving about inside house","",,"","v_005","d_00021","","" +"ADL_05","ADL_05_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]","ICES confirmed","cat","2",2,"No","No","","2","No","Help move inside house","Needs help - moving about inside house","",,"","v_005","d_00022","","" +"ADL_05","ADL_05_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Help move inside house","Needs help - moving about inside house","",,"","v_005","d_00023","","" +"ADL_05","ADL_05_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Help move inside house","Needs help - moving about inside house","",,"","v_005","d_00024","","" +"ADL_05","ADL_05_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Help move inside house","Needs help - moving about inside house","",,"","v_005","d_00025","","" +"ADL_06","ADL_06_cat2_1","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]","ICES confirmed","cat","1",2,"Yes","Yes","","1","Yes","Help personal finances","Needs help - looking after finances","Only available for 2003 onwards",,"","v_006","d_00026","","" +"ADL_06","ADL_06_cat2_2","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]","ICES confirmed","cat","2",2,"No","No","","2","No","Help personal finances","Needs help - looking after finances","Only available for 2003 onwards",,"","v_006","d_00027","","" +"ADL_06","ADL_06_cat2_NA::a","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Help personal finances","Needs help - looking after finances","Only available for 2003 onwards",,"","v_006","d_00028","","" +"ADL_06","ADL_06_cat2_NA::b","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Help personal finances","Needs help - looking after finances","Only available for 2003 onwards",,"","v_006","d_00029","","" +"ADL_06","ADL_06_cat2_NA::b","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Help personal finances","Needs help - looking after finances","Only available for 2003 onwards",,"","v_006","d_00030","","" +"ADL_07","ADL_07_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES confirmed","cat","1",2,"Yes","Yes","","1","Yes","Help heavy household chores","Needs help - heavy household chores","",,"","v_007","d_00031","","" +"ADL_07","ADL_07_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES confirmed","cat","2",2,"No","No","","2","No","Help heavy household chores","Needs help - heavy household chores","",,"","v_007","d_00032","","" +"ADL_07","ADL_07_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Help heavy household chores","Needs help - heavy household chores","",,"","v_007","d_00033","","" +"ADL_07","ADL_07_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Help heavy household chores","Needs help - heavy household chores","",,"","v_007","d_00034","","" +"ADL_07","ADL_07_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Help heavy household chores","Needs help - heavy household chores","",,"","v_007","d_00035","","" +"ADL_score_6","ADL_score_6_catN/A_Func::adl_score_6_fun","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","Func::adl_score_6_fun",,"","","","","","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00036","","" +"ADL_score_6","ADL_score_6_cat7_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","0",7,"Needs help with 0 tasks","Needs help with 0 tasks","","","Needs help with 0 tasks","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00037","","" +"ADL_score_6","ADL_score_6_cat7_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","1",7,"Needs help with at least 1 task","Needs help with at least 1 task","","","Needs help with at least 1 task","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00038","","" +"ADL_score_6","ADL_score_6_cat7_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","2",7,"Needs help with at least 2 tasks","Needs help with at least 2 tasks","","","Needs help with at least 2 tasks","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00039","","" +"ADL_score_6","ADL_score_6_cat7_4","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","3",7,"Needs help with at least 3 tasks","Needs help with at least 3 tasks","","","Needs help with at least 3 tasks","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00040","","" +"ADL_score_6","ADL_score_6_cat7_5","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","4",7,"Needs help with at least 4 tasks","Needs help with at least 4 tasks","","","Needs help with at least 4 tasks","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00041","","" +"ADL_score_6","ADL_score_6_cat7_6","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","5",7,"Needs help with at least 5 tasks","Needs help with at least 5 tasks","","","Needs help with at least 5 tasks","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00042","","" +"ADL_score_6","ADL_score_6_cat7_7","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","6",7,"Needs help with at least 6 tasks","Needs help with at least 6 tasks","","","Needs help with at least 6 tasks","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00043","","" +"ADL_score_6","ADL_score_6_cat7_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","NA::a",7,"not applicable","not applicable","","","not applicable","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00044","","" +"ADL_score_6","ADL_score_6_cat7_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]","ICES specifc","","NA::b",7,"missing","missing","","","missing","ADL score ","Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","",,"","v_008","d_00045","","" +"ALCDTTM","ALCDTTM_cat3_1","cat","cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES altered","cat","1",3,"Regular","Regular Drinker","","1","Regular Drinker","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00046","","" +"ALCDTTM","ALCDTTM_cat3_2","cat","cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES altered","cat","2",3,"Occasional","Occasional Drinker","","2","Occasional drinker","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00047","","" +"ALCDTTM","ALCDTTM_cat3_3","cat","cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES altered","cat","3",3,"No drink in last 12 months","No drink in last 12 months","","3","No drink in the last 12 months","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00048","","" +"ALCDTTM","ALCDTTM_cat3_NA::a","cat","cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES altered","cat","NA::a",3,"not applicable","not applicable","","6","not applicable","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00049","","" +"ALCDTTM","ALCDTTM_cat3_NA::b","cat","cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES altered","cat","NA::b",3,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00050","","" +"ALCDTTM","ALCDTTM_cat3_NA::b","cat","cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES altered","cat","NA::b",3,"missing","missing","","else","else","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00051","","" +"ALCDTTM","ALCDTTM_cat3_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES altered","cat","1",3,"Regular","Regular Drinker","","1","Regular drinker","Drinker type (last 12 months)","Type of drinker (12 months)","In CCHS cycles 2001, 2003, and 2005, ALCDTTM was derived from ALCDTYP in which former and never drinkers were combined into ""No drink in the last 12 months""",,"","v_009","d_00052","","" +"ALCDTTM","ALCDTTM_cat3_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES altered","cat","2",3,"Occasional","Occasional Drinker","","2","Occasional drinker","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00053","","" +"ALCDTTM","ALCDTTM_cat3_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES altered","cat","3",3,"No drink in last 12 months","No drink in last 12 months","","3","Former drinker","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00054","","" +"ALCDTTM","ALCDTTM_cat3_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES altered","cat","3",3,"No drink in last 12 months","No drink in last 12 months","","4","Never drank","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00055","","" +"ALCDTTM","ALCDTTM_cat3_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES altered","cat","NA::a",3,"not applicable","not applicable","","6","not applicable","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00056","","" +"ALCDTTM","ALCDTTM_cat3_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES altered","cat","NA::b",3,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00057","","" +"ALCDTTM","ALCDTTM_cat3_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES altered","cat","NA::b",3,"missing","missing","","else","else","Drinker type (last 12 months)","Type of drinker (12 months)","",,"","v_009","d_00058","","" +"ALCDTYP_A","ALCDTYP_cat5_1","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES specifc","cat","1",2,"Former ","Former drinker","","3","Former drinker","Drinker type","Type of drinker - (D)","",,"","v_010","d_00059","","" +"ALCDTYP_A","ALCDTYP_cat5_2","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES specifc","cat","2",2,"Other","Other drinker","","[1,2]","Other drinker","Drinker type","Type of drinker - (D)","""Other"" drinker type derived from combining ""Regular"", ""Occasional"" and ""Never"" drink categories ",,"","v_010","d_00060","","" +"ALCDTYP_A","ALCDTYP_cat5_2","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES specifc","cat","2",2,"Other","Other drinker","","[4]","Other drinker","Drinker type","Type of drinker - (D)","""Other"" drinker type derived from combining ""Regular"", ""Occasional"" and ""Never"" drink categories ",,"","v_010","d_00061","","" +"ALCDTYP_A","ALCDTYP_cat5_NA::a","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES specifc","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Drinker type","Type of drinker - (D)","",,"","v_010","d_00062","","" +"ALCDTYP_A","ALCDTYP_cat5_NA::b","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES specifc","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Drinker type","Type of drinker - (D)","",,"","v_010","d_00063","","" +"ALCDTYP_A","ALCDTYP_cat5_NA::b","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP","ICES specifc","cat","NA::b",2,"missing","missing","","else","else","Drinker type","Type of drinker - (D)","",,"","v_010","d_00064","","" +"ALCDTYP_A","ALCDTYP_cat5_NA::b","cat","cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES specifc","cat","1",2,"Former","Former drinker","","3","Former drinker","Drinker type","Type of drinker - (D)","",,"","v_010","d_00065","","" +"ALCDTYP_A","ALCDTYP_cat5_NA::b","cat","cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES specifc","cat","2",2,"Other","Other drinker","","[1,2]","Other drinker","Drinker type","Type of drinker - (D)","""Other"" drinker type derived from combining ""Regular"" and ""Occasional"" drinker categories ",,"","v_010","d_00066","","" +"ALCDTYP_A","ALCDTYP_cat5_NA::b","cat","cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES specifc","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Drinker type","Type of drinker - (D)","",,"","v_010","d_00067","","" +"ALCDTYP_A","ALCDTYP_cat5_NA::b","cat","cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES specifc","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Drinker type","Type of drinker - (D)","",,"","v_010","d_00068","","" +"ALCDTYP_A","ALCDTYP_cat5_NA::b","cat","cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]","ICES specifc","cat","NA::b",2,"missing","missing","","else","else","Drinker type","Type of drinker - (D)","",,"","v_010","d_00069","","" +"ALWDWKY","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]","ICES confirmed","cont","copy",,"drinks/week","drinks/week","drinks/week","[0,449]","drinks per week","Drinks last week","Weekly consumption of alcohol","shown as categorical variable in CCHS 2014 cycle",,"","v_011","d_00070","","" +"ALWDWKY","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","drinks/week","996","not applicable (996)","Drinks last week","Weekly consumption of alcohol","",,"","v_011","d_00071","","" +"ALWDWKY","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]","ICES confirmed","cont","NA::b",,"missing","missing","drinks/week","[997,999]","don't know (997); refusal (998); not stated (999)","Drinks last week","Weekly consumption of alcohol","",,"","v_011","d_00072","","" +"ALWDWKY","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]","ICES confirmed","cont","NA::b",,"missing","missing","drinks/week","else","else","Drinks last week","Weekly consumption of alcohol","",,"","v_011","d_00073","","" +"CCC_071","CCC_071_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]","ICES confirmed","cat","1",2,"Hypertension","Hypertension","","1","Yes (Do you have high blood pressure?)","Hypertension","Do you have high blood pressure?","",,"","v_012","d_00074","","" +"CCC_071","CCC_071_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]","ICES confirmed","cat","2",2,"No Hypertension","No Hypertension","","2","No (Do you have high blood pressure?)","Hypertension","Do you have high blood pressure?","",,"","v_012","d_00075","","" +"CCC_071","CCC_071_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Hypertension","Do you have high blood pressure?","",,"","v_012","d_00076","","" +"CCC_071","CCC_071_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Hypertension","Do you have high blood pressure?","",,"","v_012","d_00077","","" +"CCC_071","CCC_071_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Hypertension","Do you have high blood pressure?","",,"","v_012","d_00078","","" +"CCC_091","CCC_091_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]","ICES confirmed","cat","1",2,"COPD/emphysema/bronchitis","COPD/emphysema/bronchitis","","1","Yes (Do you have COPD(eg bronchitis,emphysema)?)","COPD/Emphysema/Bronchitis","Do you have COPD (eg bronchitis, emphysema)?","",,"","v_013","d_00079","","" +"CCC_091","CCC_091_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]","ICES confirmed","cat","2",2,"No COPD/emphysema/bronchitis","No COPD/emphysema/bronchitis","","2","No (Do you have COPD(eg bronchitis,emphysema)?)","COPD/Emphysema/Bronchitis","Do you have COPD (eg bronchitis, emphysema)?","",,"","v_013","d_00080","","" +"CCC_091","CCC_091_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","COPD/Emphysema/Bronchitis","Do you have COPD (eg bronchitis, emphysema)?","",,"","v_013","d_00081","","" +"CCC_091","CCC_091_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","COPD/Emphysema/Bronchitis","Do you have COPD (eg bronchitis, emphysema)?","",,"","v_013","d_00082","","" +"CCC_091","CCC_091_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","COPD/Emphysema/Bronchitis","Do you have COPD (eg bronchitis, emphysema)?","",,"","v_013","d_00083","","" +"CCC_101","CCC_101_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]","ICES confirmed","cat","1",2,"Diabetes","Diabetes","","1","Yes (Do you have diabetes?)","Diabetes","Do you have diabetes?","",,"","v_014","d_00084","","" +"CCC_101","CCC_101_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]","ICES confirmed","cat","2",2,"No Diabetes","No Diabetes","","2","No (Do you have diabetes?)","Diabetes","Do you have diabetes?","",,"","v_014","d_00085","","" +"CCC_101","CCC_101_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Diabetes","Do you have diabetes?","",,"","v_014","d_00086","","" +"CCC_101","CCC_101_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Diabetes","Do you have diabetes?","",,"","v_014","d_00087","","" +"CCC_101","CCC_101_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Diabetes","Do you have diabetes?","",,"","v_014","d_00088","","" +"CCC_111","CCC_111_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111","ICES confirmed","cat","1",2,"Epilepsy","Epilepsy","","1","Yes (Do you have epilepsy?)","Epilepsy","Do you have epilepsy?","",,"","v_015","d_00089","","" +"CCC_111","CCC_111_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111","ICES confirmed","cat","2",2,"No Epilepsy","No Epilepsy","","2","No (Do you have epilepsy?)","Epilepsy","Do you have epilepsy?","",,"","v_015","d_00090","","" +"CCC_111","CCC_111_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Epilepsy","Do you have epilepsy?","",,"","v_015","d_00091","","" +"CCC_111","CCC_111_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Epilepsy","Do you have epilepsy?","",,"","v_015","d_00092","","" +"CCC_111","CCC_111_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Epilepsy","Do you have epilepsy?","",,"","v_015","d_00093","","" +"CCC_121","CCC_121_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]","ICES confirmed","cat","1",2,"Heart Disease","Heart Disease","","1","Yes (Do you have heart disease?)","Heart Disease","Do you have heart disease?","",,"","v_016","d_00094","","" +"CCC_121","CCC_121_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]","ICES confirmed","cat","2",2,"No Heart Disease","No Heart Disease","","2","No (Do you have heart disease?)","Heart Disease","Do you have heart disease?","",,"","v_016","d_00095","","" +"CCC_121","CCC_121_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Heart Disease","Do you have heart disease?","",,"","v_016","d_00096","","" +"CCC_121","CCC_121_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Heart Disease","Do you have heart disease?","",,"","v_016","d_00097","","" +"CCC_121","CCC_121_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Heart Disease","Do you have heart disease?","",,"","v_016","d_00098","","" +"CCC_151","CCC_151_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]","ICES confirmed","cat","1",2,"Stroke","Stroke","","1","Yes (Do you suffer from the effects of stroke?)","Stroke","Do you suffer from effects of stroke?","",,"","v_017","d_00099","","" +"CCC_151","CCC_151_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]","ICES confirmed","cat","2",2,"No Stroke","No Stroke","","2","No (Do you suffer from the effects of stroke?)","Stroke","Do you suffer from effects of stroke?","",,"","v_017","d_00100","","" +"CCC_151","CCC_151_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Stroke","Do you suffer from effects of stroke?","",,"","v_017","d_00101","","" +"CCC_151","CCC_151_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Stroke","Do you suffer from effects of stroke?","",,"","v_017","d_00102","","" +"CCC_151","CCC_151_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Stroke","Do you suffer from effects of stroke?","",,"","v_017","d_00103","","" +"CCC_280","CCC_280_cat2_1","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]","ICES confirmed","cat","1",2,"Has a mood disorder","Has a mood disorder","","1","Yes (Do you have a mood disorder?)","Mood disorder","Do you have a mood disorder?","",,"","v_018","d_00104","","" +"CCC_280","CCC_280_cat2_2","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]","ICES confirmed","cat","2",2,"Does not have a mood disorder","Does not have a mood disorder","","2","No (Do you have a mood disorder?)","Mood disorder","Do you have a mood disorder?","",,"","v_018","d_00105","","" +"CCC_280","CCC_280_cat2_NA::a","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Mood disorder","Do you have a mood disorder?","",,"","v_018","d_00106","","" +"CCC_280","CCC_280_cat2_NA::b","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Mood disorder","Do you have a mood disorder?","",,"","v_018","d_00107","","" +"CCC_280","CCC_280_cat2_NA::b","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Mood disorder","Do you have a mood disorder?","",,"","v_018","d_00108","","" +"DHH_SEX","DHH_SEX_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]","ICES confirmed","cat","1",2,"Male","Male","","1","Male","Sex","Sex","",,"","v_019","d_00109","","" +"DHH_SEX","DHH_SEX_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]","ICES confirmed","cat","2",2,"Female","Female","","2","Female","Sex","Sex","",,"","v_019","d_00110","","" +"DHH_SEX","DHH_SEX_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Sex","Sex","",,"","v_019","d_00111","","" +"DHH_SEX","DHH_SEX_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Sex","Sex","",,"","v_019","d_00112","","" +"DHH_SEX","DHH_SEX_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Sex","Sex","",,"","v_019","d_00113","","" +"DHH_AGE","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]","ICES altered","cont","copy",,"Age","continuous age","years","[12,102]","Age","Age","Continuous age","Share files have continuous age.",,"","v_020","d_00114","","" +"DHH_AGE","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]","ICES altered","cont","NA::a",,"not applicable","not applicable","years","96","not applicable","Age","Continuous age","",,"","v_020","d_00115","","" +"DHH_AGE","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]","ICES altered","cont","NA::b",,"missing","missing","years","[97,99]","don't know (97); refusal (98); not stated (99)","Age","Continuous age","",,"","v_020","d_00116","","" +"DHH_AGE","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]","ICES altered","cont","NA::b",,"missing","missing","years","else","else","Age","Continuous age","",,"","v_020","d_00117","","" +"DHH_MS","DHH_MS_cat4_1","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","1",4,"Married","Married","","1","Married","Marital status","2001:Marital status - (G); [Marital status]","",,"","v_021","d_00118","","" +"DHH_MS","DHH_MS_cat4_2","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","2",4,"Common-law","Common-law","","2","Common-law","Marital status","2001:Marital status - (G); [Marital status]","",,"","v_021","d_00119","","" +"DHH_MS","DHH_MS_cat4_3","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","3",4,"Widow/Sep/Div","Widow/Sep/Div","","[3,5]","Widow/Sep/Div","Marital status","2001:Marital status - (G); [Marital status]","",,"","v_021","d_00120","","" +"DHH_MS","DHH_MS_cat4_4","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","4",4,"Single/Never mar.","Single/Never mar.","","6","Single/Never mar.","Marital status","2001:Marital status - (G); [Marital status]","",,"","v_021","d_00121","","" +"DHH_MS","DHH_MS_cat4_NA::a","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","NA::a",4,"not applicable","not applicable","","96","not applicable","Marital status","2001:Marital status - (G); [Marital status]","",,"","v_021","d_00122","","" +"DHH_MS","DHH_MS_cat4_NA::b","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","NA::b",4,"missing","missing","","[97,99]","don't know (97); refusal (98); not stated (99)","Marital status","2001:Marital status - (G); [Marital status]","",,"","v_021","d_00123","","" +"DHH_MS","DHH_MS_cat4_NA::b","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","NA::b",4,"missing","missing","","else","else","Marital status","2001:Marital status - (G); [Marital status]","",,"","v_021","d_00124","","" +"DHH_MS_A","DHH_MS_DemPoRT_cat3_1","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","1",4,"Married/Common-law","Married/Common-law","","[1,2]","Married/Common-law","Marital status","2001:Marital status - (G); [Marital status]","DemPoRt marriage categories",,"","v_022","d_00125","","" +"DHH_MS_A","DHH_MS_DemPoRT_cat3_2","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","2",4,"Sep/Div","Sep/Div","","[4,5]","Sep/Div","Marital status","2001:Marital status - (G); [Marital status]","DemPoRt marriage categories",,"","v_022","d_00126","","" +"DHH_MS_A","DHH_MS_DemPoRT_cat3_3","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","3",4,"Widow","Widow","","3","Widow","Marital status","2001:Marital status - (G); [Marital status]","DemPoRt marriage categories",,"","v_022","d_00127","","" +"DHH_MS_A","DHH_MS_DemPoRT_cat3_3","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","4",4,"Single ","Single ","","6","Single ","Marital status","2001:Marital status - (G); [Marital status]","DemPoRt marriage categories",,"","v_022","d_00128","","" +"DHH_MS_A","DHH_MS_DemPoRT_cat3_NA::a","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","NA::a",4,"not applicable","not applicable","","96","not applicable","Marital status","2001:Marital status - (G); [Marital status]","DemPoRt marriage categories",,"","v_022","d_00129","","" +"DHH_MS_A","DHH_MS_DemPoRT_cat3_NA::b","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","NA::b",4,"missing","missing","","[97,99]","don't know (97); refusal (98); not stated (99)","Marital status","2001:Marital status - (G); [Marital status]","DemPoRt marriage categories",,"","v_022","d_00130","","" +"DHH_MS_A","DHH_MS_DemPoRT_cat3_NA::b","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","ICES specific","cat","NA::b",4,"missing","missing","","else","else","Marital status","2001:Marital status - (G); [Marital status]","DemPoRt marriage categories",,"","v_022","d_00131","","" +"EDUDR04","EDUDR04_cat4_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]","ICES confirmed","cat","1",4,"Less than high school","Less than High School","","1","< Than Secondary","Highest education","Highest level/education - 4 categories","Slight change in wording of categories from CCHS 2011 onwards",,"","v_023","d_00132","","" +"EDUDR04","EDUDR04_cat4_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]","ICES confirmed","cat","2",4,"High school graduate","High School Graduate","","2","Secondary grad","Highest education","Highest level/education - 4 categories","",,"","v_023","d_00133","","" +"EDUDR04","EDUDR04_cat4_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]","ICES confirmed","cat","3",4,"Some post-secondary education","Some post-secondary education","","3","Other post-sec.","Highest education","Highest level/education - 4 categories","",,"","v_023","d_00134","","" +"EDUDR04","EDUDR04_cat4_4","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]","ICES confirmed","cat","4",4,"Post-secondary graduate","Post-secondary graduate","","4","Post-sec. grad","Highest education","Highest level/education - 4 categories","",,"","v_023","d_00135","","" +"EDUDR04","EDUDR04_cat4_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]","ICES confirmed","cat","NA::a",4,"not applicable","not applicable","","6","not applicable","Highest education","Highest level/education - 4 categories","",,"","v_023","d_00136","","" +"EDUDR04","EDUDR04_cat4_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]","ICES confirmed","cat","NA::b",4,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Highest education","Highest level/education - 4 categories","CCHS 2001 does not have don't know (7) or refusal (8); CCHS 2001 ICES has don't know (7) and refusal (8)",,"","v_023","d_00137","","" +"EDUDR04","EDUDR04_cat4_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]","ICES confirmed","cat","NA::b",4,"missing","missing","","else","else","Highest education","Highest level/education - 4 categories","",,"","v_023","d_00138","","" +"FVCDJUI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]","ICES confirmed","cont","copy",,"Daily juice","Daily juice","","[0,47]","Daily consumption - fruit juice - (D)","Juice consumption","Daily consumption - fruit juice (D)","",,"","v_024","d_00139","","" +"FVCDJUI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","","999.6","Not applicable","Juice consumption","Daily consumption - fruit juice (D)","",,"","v_024","d_00140","","" +"FVCDJUI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]","ICES confirmed","cont","NA::b",,"missing","missing","","[999.7,999.9]","don't know (999.7); refusal (999.8); not stated (999.9)","Juice consumption","Daily consumption - fruit juice (D)","Don't know (999.7) and refusal (999.8) not included in 2001 CCHS",,"","v_024","d_00141","","" +"FVCDJUI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]","ICES confirmed","cont","NA::b",,"missing","missing","","else","else","Juice consumption","Daily consumption - fruit juice (D)","",,"","v_024","d_00142","","" +"FVCDPOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]","ICES confirmed","cont","copy",,"Daily potatoes","Daily potatoes","","[0,30]","Daily consumption - potatoes - (D)","Potato consumption","Daily consumption - potatoes (D)","",,"","v_025","d_00143","","" +"FVCDPOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","","999.6","Not applicable","Potato consumption","Daily consumption - potatoes (D)","",,"","v_025","d_00144","","" +"FVCDPOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]","ICES confirmed","cont","NA::b",,"missing","missing","","[999.7,999.9]","don't know (999.7); refusal (999.8); not stated (999.9)","Potato consumption","Daily consumption - potatoes (D)","Don't know (999.7) and refusal (999.8) not included in 2001 CCHS",,"","v_025","d_00145","","" +"FVCDPOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]","ICES confirmed","cont","NA::b",,"missing","missing","","else","else","Potato consumption","Daily consumption - potatoes (D)","",,"","v_025","d_00146","","" +"FVCDTOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]","ICES confirmed","cont","copy",,"Daily total fruits and vegetables","Daily total fruits and vegetables","","[0,70]","Daily consumption - total fruits and veg. - (D)","Total fruit/veg consumption","Daily consumptoin - total fruits and veg. - (D)","",,"","v_026","d_00147","","" +"FVCDTOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","","999.6","Not applicable","Total fruit/veg consumption","Daily consumptoin - total fruits and veg. - (D)","",,"","v_026","d_00148","","" +"FVCDTOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]","ICES confirmed","cont","NA::b",,"missing","missing","","[999.7,999.9]","don't know (999.7); refusal (999.8); not stated (999.9)","Total fruit/veg consumption","Daily consumptoin - total fruits and veg. - (D)","Don't know (999.7) and refusal (999.8) not included in 2001 CCHS",,"","v_026","d_00149","","" +"FVCDTOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]","ICES confirmed","cont","NA::b",,"missing","missing","","else","else","Total fruit/veg consumption","Daily consumptoin - total fruits and veg. - (D)","",,"","v_026","d_00150","","" +"FVCDTOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","","9999.6","Not applicable","Total fruit/veg consumption","Daily consumptoin - total fruits and veg. - (D)","Not applicable (9999.6) not included in 2015-2016 CCHS",,"","v_026","d_00151","","" +"FVCDTOT","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]","ICES confirmed","cont","NA::b",,"missing","missing","","9999.9","don't know (999.7); refusal (999.8); not stated (999.9)","Total fruit/veg consumption","Daily consumptoin - total fruits and veg. - (D)","",,"","v_026","d_00152","","" +"GEN_01","GEN_01_cat5_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]","ICES confirmed","cat","1",5,"Excellent","Excellent","","1","Excellent","Self-perceived health","Self-perceived health","",,"","v_027","d_00153","","" +"GEN_01","GEN_01_cat5_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]","ICES confirmed","cat","2",5,"Very good","Very good","","2","Very good","Self-perceived health","Self-perceived health","",,"","v_027","d_00154","","" +"GEN_01","GEN_01_cat5_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]","ICES confirmed","cat","3",5,"Good","Good","","3","Good","Self-perceived health","Self-perceived health","",,"","v_027","d_00155","","" +"GEN_01","GEN_01_cat5_4","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]","ICES confirmed","cat","4",5,"Fair","Fair","","4","Fair","Self-perceived health","Self-perceived health","",,"","v_027","d_00156","","" +"GEN_01","GEN_01_cat5_5","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]","ICES confirmed","cat","5",5,"Poor","Poor","","5","Poor","Self-perceived health","Self-perceived health","",,"","v_027","d_00157","","" +"GEN_01","GEN_01_cat5_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]","ICES confirmed","cat","NA::a",5,"not applicable","not applicable","","6","not applicable","Self-perceived health","Self-perceived health","",,"","v_027","d_00158","","" +"GEN_01","GEN_01_cat5_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]","ICES confirmed","cat","NA::b",5,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Self-perceived health","Self-perceived health","",,"","v_027","d_00159","","" +"GEN_01","GEN_01_cat5_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]","ICES confirmed","cat","NA::b",5,"missing","missing","","else","else","Self-perceived health","Self-perceived health","",,"","v_027","d_00160","","" +"GEN_07","GEN_07_cat5_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020, cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]","ICES confirmed","cat","1",5,"Not at all","Not at all","","1","Not at all","Self-perceived life stress","Self-perceived life stress","",,"","v_028","d_00161","","" +"GEN_07","GEN_07_cat5_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]","ICES confirmed","cat","2",5,"Not very","Not very","","2","Not very","Self-perceived life stress","Self-perceived life stress","",,"","v_028","d_00162","","" +"GEN_07","GEN_07_cat5_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]","ICES confirmed","cat","3",5,"A bit","A bit","","3","A bit","Self-perceived life stress","Self-perceived life stress","",,"","v_028","d_00163","","" +"GEN_07","GEN_07_cat5_4","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]","ICES confirmed","cat","4",5,"Quite a bit","Quite a bit","","4","Quite a bit","Self-perceived life stress","Self-perceived life stress","",,"","v_028","d_00164","","" +"GEN_07","GEN_07_cat5_5","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]","ICES confirmed","cat","5",5,"Extremely","Extremely","","5","Extremely","Self-perceived life stress","Self-perceived life stress","",,"","v_028","d_00165","","" +"GEN_07","GEN_07_cat5_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]","ICES confirmed","cat","NA::a",5,"not applicable","not applicable","","6","not applicable","Self-perceived life stress","Self-perceived life stress","CCHS 2015-2018 does not have not applicable (6)",,"","v_028","d_00166","","" +"GEN_07","GEN_07_cat5_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]","ICES confirmed","cat","NA::b",5,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Self-perceived life stress","Self-perceived life stress","",,"","v_028","d_00167","","" +"GEN_07","GEN_07_cat5_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]","ICES confirmed","cat","NA::b",5,"missing","missing","","else","else","Self-perceived life stress","Self-perceived life stress","",,"","v_028","d_00168","","" +"GEN_10","GEN_10_cat4_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]","ICES confirmed","cat","1",4,"Very strong","Very strong","","1","Very strong","Sense of belonging","Sense of belonging in the community","",,"","v_029","d_00169","","" +"GEN_10","GEN_10_cat4_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]","ICES confirmed","cat","2",4,"Somewhat strong","Somewhat strong","","2","Somewhat strong","Sense of belonging","Sense of belonging in the community","",,"","v_029","d_00170","","" +"GEN_10","GEN_10_cat4_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]","ICES confirmed","cat","3",4,"Somewhat weak","Somewhat weak","","3","Somewhat weak","Sense of belonging","Sense of belonging in the community","",,"","v_029","d_00171","","" +"GEN_10","GEN_10_cat4_4","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]","ICES confirmed","cat","4",4,"Very weak","Very weak","","4","Very weak","Sense of belonging","Sense of belonging in the community","",,"","v_029","d_00172","","" +"GEN_10","GEN_10_cat4_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]","ICES confirmed","cat","NA::a",4,"not applicable","not applicable","","6","not applicable","Sense of belonging","Sense of belonging in the community","",,"","v_029","d_00173","","" +"GEN_10","GEN_10_cat4_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]","ICES confirmed","cat","NA::b",4,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Sense of belonging","Sense of belonging in the community","",,"","v_029","d_00174","","" +"GEN_10","GEN_10_cat4_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]","ICES confirmed","cat","NA::b",4,"missing","missing","","else","else","Sense of belonging","Sense of belonging in the community","",,"","v_029","d_00175","","" +"HUIGHER","HUIGHER_cat3_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]","","cat","1",3,"No hearing prob","No hearing problem","","1","No hearing prob","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00176","","" +"HUIGHER","HUIGHER_cat3_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]","","cat","2",3,"Hear corrected","Hearing corrected","","2","Hear corrected","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00177","","" +"HUIGHER","HUIGHER_cat3_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]","","cat","3",3,"Hear n-corrected","Hearing not-corrected","","3","Hear n-corrected","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00178","","" +"HUIGHER","HUIGHER_cat3_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]","","cat","NA::a",3,"not applicable","not applicable","","6","not applicable","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00179","","" +"HUIGHER","HUIGHER_cat3_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]","","cat","NA::b",3,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","HUI Hearing","Hearing problems - function code (D, G)","CCHS 2001 does not include don't know (7) or refusal (8)",,"","v_030","d_00180","","" +"HUIGHER","HUIGHER_cat3_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]","","cat","NA::b",3,"missing","missing","","else","else","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00181","","" +"HUIGHER","HUIGHER_cat3_1","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i","[HUIDHER]","","cat","1",3,"No hearing prob","No hearing problem","","1","No hearing prob","HUI Hearing","Hearing problems - function code (D, G)","Shared files use hearing health status with more detailed categories. See derived variable documentation.",,"","v_030","d_00182","","" +"HUIGHER","HUIGHER_cat3_2","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i","[HUIDHER]","","cat","2",3,"Hear corrected","Hearing corrected","","[2,3]","Hear corrected","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00183","","" +"HUIGHER","HUIGHER_cat3_3","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i","[HUIDHER]","","cat","3",3,"Hear n-corrected","Hearing not-corrected","","[4,6]","Hear n-corrected","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00184","","" +"HUIGHER","HUIGHER_cat3_NA::a","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i","[HUIDHER]","","cat","NA::a",3,"not applicable","not applicable","","96","not applicable","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00185","","" +"HUIGHER","HUIGHER_cat3_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i","[HUIDHER]","","cat","NA::b",3,"missing","missing","","[97,99]","don't know (97); refusal (98); not stated (99)","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00186","","" +"HUIGHER","HUIGHER_cat3_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i","[HUIDHER]","","cat","NA::b",3,"missing","missing","","else","else","HUI Hearing","Hearing problems - function code (D, G)","",,"","v_030","d_00187","","" +"HUI06","HUI06_cat2_1","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]","ICES specific","cat","1",2,"Able to hear in a group w/o hearing aid","Able to hear in a group without a hearing aid","","1","Able to hear in a group with a hearing aid","HUI Hearing","Hearing ability - in a group without a hearing aid","",,"","v_031","d_00188","","" +"HUI06","HUI06_cat2_2","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]","ICES specific","cat","2",2,"Unable to hear in a group w/o hearing aid","Unable to hear in a group without a hearing aid","","2","Unable to hear in a group with a hearing aid","HUI Hearing","Hearing ability - in a group without a hearing aid","",,"","v_031","d_00189","","" +"HUI06","HUI06_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]","ICES specific","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","HUI Hearing","Hearing ability - in a group without a hearing aid","",,"","v_031","d_00190","","" +"HUI06","HUI06_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]","ICES specific","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","HUI Hearing","Hearing ability - in a group without a hearing aid","",,"","v_031","d_00191","","" +"HUI06","HUI06_cat2_NA::b","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]","ICES specific","cat","NA::b",2,"missing","missing","","else","else","HUI Hearing","Hearing ability - in a group without a hearing aid","",,"","v_031","d_00192","","" +"HUI07","HUI07_cat2_1","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]","ICES specific","cat","1",2,"Able to hear in a group w/ hearing aid","Able to hear in a group with hearing aid","","1","Able to hear in a group with a hearing aid","HUI Hearing","Hearing ability - in a group with a hearing aid","",,"","v_032","d_00193","","" +"HUI07","HUI07_cat2_2","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]","ICES specific","cat","2",2,"Unable to hear in a group w/ hearing aid","Unable to hear in a group with hearing aid","","2","Unable to hear in a group with a hearing aid","HUI Hearing","Hearing ability - in a group with a hearing aid","",,"","v_032","d_00194","","" +"HUI07","HUI07_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]","ICES specific","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","HUI Hearing","Hearing ability - in a group with a hearing aid","",,"","v_032","d_00195","","" +"HUI07","HUI07_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]","ICES specific","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","HUI Hearing","Hearing ability - in a group with a hearing aid","",,"","v_032","d_00196","","" +"HUI07","HUI07_cat2_NA::b","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]","ICES specific","cat","NA::b",2,"missing","missing","","else","else","HUI Hearing","Hearing ability - in a group with a hearing aid","",,"","v_032","d_00197","","" +"HUI07A","HUI07_cat2_1","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]","ICES specific","cat","1",2,"Yes","Yes","","1","Able to hear","HUI Hearing","Hearing ability - Able to hear","",,"","v_033","d_00198","","" +"HUI07A","HUI07_cat2_2","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]","ICES specific","cat","2",2,"No","No","","2","Unable to hear","HUI Hearing","Hearing ability - Able to hear","",,"","v_033","d_00199","","" +"HUI07A","HUI07_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]","ICES specific","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","HUI Hearing","Hearing ability - Able to hear","",,"","v_033","d_00200","","" +"HUI07A","HUI07_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]","ICES specific","cat","NA::a",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","HUI Hearing","Hearing ability - Able to hear","",,"","v_033","d_00201","","" +"HUI07A","HUI07_cat2_NA::b","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]","ICES specific","cat","NA::b",2,"missing","missing","","else","else","HUI Hearing","Hearing ability - Able to hear","",,"","v_033","d_00202","","" +"HUI08","HUI08_cat2_1","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]","ICES specific","cat","1",2,"Yes","Yes","","1","Able to hear in quiet room without a hearing aid","HUI Hearing ","Hearing ability - Able to hear in quiet room without hearing aid ","",,"","v_034","d_00203","","" +"HUI08","HUI08_cat2_2","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]","ICES specific","cat","2",2,"No ","No","","2","Unable to hear in quiet room without a hearing aid","HUI Hearing ","Hearing ability - Able to hear in quiet room without hearing aid ","",,"","v_034","d_00204","","" +"HUI08","HUI08_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]","ICES specific","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","HUI Hearing ","Hearing ability - Able to hear in quiet room without hearing aid ","",,"","v_034","d_00205","","" +"HUI08","HUI08_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]","ICES specific","cat","NA::a",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","HUI Hearing ","Hearing ability - Able to hear in quiet room without hearing aid ","",,"","v_034","d_00206","","" +"HUI08","HUI08_cat2_NA::b","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]","ICES specific","cat","NA::b",2,"missing","missing","","else","else","HUI Hearing ","Hearing ability - Able to hear in quiet room without hearing aid ","",,"","v_034","d_00207","","" +"HUI09","HUI09_cat2_1","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_09, cchs2003_i::HUIC_09, [HUI_09]","ICES specific","cat","1",2,"Yes","Yes","","1","Able to hear in quiet room with a hearing aid","HUI Hearing ","Hearing ability - Able to hear in quiet room with hearing aid","",,"","v_035","d_00208","","" +"HUI09","HUI09_cat2_2","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]","ICES specific","cat","2",2,"No ","No ","","2","Unable to hear in quiet room with a hearing aid ","HUI Hearing ","Hearing ability - Able to hear in quiet room with hearing aid","",,"","v_035","d_00209","","" +"HUI09","HUI09_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]","ICES specific","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","HUI Hearing ","Hearing ability - Able to hear in quiet room with hearing aid","",,"","v_035","d_00210","","" +"HUI09","HUI09_cat2_NA::a","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]","ICES specific","cat","NA::a",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","HUI Hearing ","Hearing ability - Able to hear in quiet room with hearing aid","",,"","v_035","d_00211","","" +"HUI09","HUI09_cat2_NA::b","cat","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]","ICES specific","cat","NA::b",2,"missing","missing","","else","else","HUI Hearing ","Hearing ability - Able to hear in quiet room with hearing aid","",,"","v_035","d_00212","","" +"HWTGBMI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, [HWTGBMI]","ICES confirmed","cont","copy",,"BMI","Body Mass Index","kg/m2","[8.07,137.46]","BMI / self-report - (D,G)","BMI","BMI / self-report - (D,G)","CCHS 2001 restricts BMI to ages 20-64. CCHS 2015-2016 uses adjusted BMI. Consider using using HWTGBMI_der for the most concistent BMI variable across all CCHS cycles. See documentation for BMI_fun() in derived variables for more details, or type ?BMI_fun in the console.",,"","v_036","d_00213","","" +"HWTGBMI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","kg/m2","999.6","Not applicable","BMI","BMI / self-report - (D,G)","CCHS 2001 and 2003 codes not applicable and missing variables as 999.6 and 999.7-999.9 respectively, while CCHS 2005 onwards codes not applicable and missing variables as 999.96 and 999.7-999.99 respectively",,"","v_036","d_00214","","" +"HWTGBMI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]","ICES confirmed","cont","NA::b",,"missing","missing","kg/m2","[999.7,999.9]","don't know (999.7); refusal (999.8); not stated (999.9)","BMI","BMI / self-report - (D,G)","Don't know (999.7) and refusal (999.8) not included in 2001 CCHS",,"","v_036","d_00215","","" +"HWTGBMI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","kg/m2","999.96","Not applicable","BMI","BMI / self-report - (D,G)","",,"","v_036","d_00216","","" +"HWTGBMI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]","ICES confirmed","cont","NA::b",,"missing","missing","kg/m2","[999.97,999.99]","don't know (999.97); refusal (999.98); not stated (999.99)","BMI","BMI / self-report - (D,G)","",,"","v_036","d_00217","","" +"HWTGBMI","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]","ICES confirmed","cont","NA::b",,"missing","missing","kg/m2","else","else","BMI","BMI / self-report - (D,G)","",,"","v_036","d_00218","","" +"HWTDBMI","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADBMI, cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2015_2016_i::HWTDVBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]","ICES specific","cont","copy",,"BMI","Body Mass Index","kg/m3","[8.07, 137.46]","BMI / self-report - (D)","BMI","BMI / self-report - (D)","",,"","v_037","d_00219","","" +"HWTDBMI","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]","ICES specific","cont","NA::a",,"not applicable","not applicable","kg/m4","999.6","Not applicable","BMI","BMI / self-report - (D)","",,"","v_037","d_00220","","" +"HWTDBMI","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]","ICES specific","cont","NA::b",,"missing","missing","kg/m5","[999.7,999.9]","don't know (999.7); refusal (999.8); not stated (999.9)","BMI","BMI / self-report - (D)","",,"","v_037","d_00221","","" +"HWTDBMI","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]","ICES specific","cont","NA::a",,"not applicable","not applicable","kg/m6","999.96","Not applicable","BMI","BMI / self-report - (D)","",,"","v_037","d_00222","","" +"HWTDBMI","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]","ICES specific","cont","NA::b",,"missing","missing","kg/m7","[999.97,999.99]","don't know (999.97); refusal (999.98); not stated (999.99)","BMI","BMI / self-report - (D)","",,"","v_037","d_00223","","" +"HWTDBMI","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]","ICES specific","cont","NA::b",,"missing","missing","kg/m8","else","else","BMI","BMI / self-report - (D)","",,"","v_037","d_00224","","" +"HWTGBMI_der","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGHTM, HWTGWTK]","","","Func::bmi_fun",,"","","kg/m2","","","Derived BMI","Derived Body Mass Index","BMI variable derived from the harmonized height and weight variables. See documentation for BMI_fun() in derived variables for more details, or type ?BMI_fun in the console.",,"","v_038","d_00225","","" +"HWTGBMI_der","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGHTM, HWTGWTK]","","","NA::b",,"missing","missing","kg/m2","","","Derived BMI","Derived Body Mass Index","",,"","v_038","d_00226","","" +"HWTDBMI_der","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[HWTDHTM, HWTDWTK]","","","Func::bmi_fun_D",,"missing","missing","kg/m2","","","Derived BMI","Derived Body Mass Index","",,"","v_039","d_00227","","" +"HWTDBMI_der","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[HWTDHTM, HWTDWTK]","","","NA::b",,"missing","missing","kg/m2","","","Derived BMI","Derived Body Mass Index","",,"","v_039","d_00228","","" +"HWTGBMI_der_cat4","HWTGBMI_der_cat4N/A_Func::bmi_fun_cat","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGBMI_der]","","","Func::bmi_fun_cat",,"","","kg/m2","","","Categorical BMI","Categorical body mass index","",,"","v_040","d_00229","","" +"HWTGBMI_der_cat4","HWTGBMI_der_cat4_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGBMI_der]","","","1",4,"Underweight","Underweight with BMI less than 18.5","kg/m2","1","Underweight","Categorical BMI","Categorical body mass index","",,"","v_040","d_00230","","" +"HWTGBMI_der_cat4","HWTGBMI_der_cat4_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGBMI_der]","","","2",4,"Normal weight","Normal weight with BMI between 18.5 and 25","kg/m2","2","Normal weight","Categorical BMI","Categorical body mass index","",,"","v_040","d_00231","","" +"HWTGBMI_der_cat4","HWTGBMI_der_cat4_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGBMI_der]","","","3",4,"Overweight","Overweight with BMI between 25 and 30","kg/m2","3","Overweight","Categorical BMI","Categorical body mass index","",,"","v_040","d_00232","","" +"HWTGBMI_der_cat4","HWTGBMI_der_cat4_4","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGBMI_der]","","","4",4,"Obese","Obese with BMI greater than 30","kg/m2","4","Obese","Categorical BMI","Categorical body mass index","",,"","v_040","d_00233","","" +"HWTGBMI_der_cat4","HWTGBMI_der_cat4_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGBMI_der]","","","NA::a",4,"not applicable","not applicable","kg/m2","NA::a","not applicable","Categorical BMI","Categorical body mass index","",,"","v_040","d_00234","","" +"HWTGBMI_der_cat4","HWTGBMI_der_cat4_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGBMI_der]","","","NA::b",4,"missing","missing","kg/m2","NA::b","missing","Categorical BMI","Categorical body mass index","",,"","v_040","d_00235","","" +"HWTDBMI_der_cat4","HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::HWTDBMI_der_cat4","","","Func::bmi_fun_cat_D",,"","","kg/m2","","","Categorical BMI","Categorical body mass index","",,"","v_041","d_00236","","" +"HWTDBMI_der_cat4","HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::HWTDBMI_der_cat4","","","1",4,"Underweight","Underweight with BMI less than 18.5","kg/m2","1","Underweight","Categorical BMI","Categorical body mass index","",,"","v_041","d_00237","","" +"HWTDBMI_der_cat4","HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::HWTDBMI_der_cat4","","","2",4,"Normal weight","Normal weight with BMI between 18.5 and 25","kg/m2","2","Normal weight","Categorical BMI","Categorical body mass index","",,"","v_041","d_00238","","" +"HWTDBMI_der_cat4","HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::HWTDBMI_der_cat4","","","3",4,"Overweight","Overweight with BMI between 25 and 30","kg/m2","3","Overweight","Categorical BMI","Categorical body mass index","",,"","v_041","d_00239","","" +"HWTDBMI_der_cat4","HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::HWTDBMI_der_cat4","","","4",4,"Obese","Obese with BMI greater than 30","kg/m2","4","Obese","Categorical BMI","Categorical body mass index","",,"","v_041","d_00240","","" +"HWTDBMI_der_cat4","HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::HWTDBMI_der_cat4","","","NA::a",4,"not applicable","not applicable","kg/m2","NA::a","not applicable","Categorical BMI","Categorical body mass index","",,"","v_041","d_00241","","" +"HWTDBMI_der_cat4","HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D","cat","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::HWTDBMI_der_cat4","","","NA::b",4,"missing","missing","kg/m2","NA::b","missing","Categorical BMI","Categorical body mass index","",,"","v_041","d_00242","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.118",,"Height","converted height (3'8 IN - 44 inches)","meters","1","3'8 IN - 44 inches","Height","Height (metres)/self-reported - (D,G)","2001 and 2003 CCHS use inches, values converted to meters to 3 decimal points",,"","v_042","d_00243","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.143",,"Height","converted height (3'9 IN - 45 inches)","meters","2","3'9 IN - 45 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00244","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.168",,"Height","converted height (3'10 IN - 46 inches)","meters","3","3'10 IN - 46 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00245","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.194",,"Height","converted height (3'11 IN - 47 inches)","meters","4","3'11 IN - 47 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00246","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.219",,"Height","converted height (4'0 IN - 48 inches)","meters","5","4'0 IN - 48 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00247","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.245",,"Height","converted height (4'1 IN - 49 inches)","meters","6","4'1 IN - 49 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00248","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.27",,"Height","converted height (4'2 IN - 50 inches)","meters","7","4'2 IN - 50 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00249","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.295",,"Height","converted height (4'3 IN - 51 inches)","meters","8","4'3 IN - 51 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00250","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.321",,"Height","converted height (4'4 IN - 52 inches)","meters","9","4'4 IN - 52 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00251","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.346",,"Height","converted height (4'5 IN - 53 inches)","meters","10","4'5 IN - 53 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00252","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.372",,"Height","converted height (4'6 IN - 54 inches)","meters","11","4'6 IN - 54 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00253","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.397",,"Height","converted height (4'7 IN - 55 inches)","meters","12","4'7 IN - 55 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00254","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.422",,"Height","converted height (4'8 IN - 56 inches)","meters","13","4'8 IN - 56 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00255","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.448",,"Height","converted height (4'9 IN - 57 inches)","meters","14","4'9 IN - 57 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00256","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.473",,"Height","converted height (4'10 IN - 58 inches)","meters","15","4'10 IN - 58 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00257","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.499",,"Height","converted height (4'11 in - 59 inches)","meters","16","4'11 in - 59 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00258","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.524",,"Height","converted height (5'0 IN - 60 inches)","meters","17","5'0 IN - 60 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00259","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.549",,"Height","converted height (5'1 IN - 61 inches)","meters","18","5'1 IN - 61 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00260","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.575",,"Height","converted height (5'2 IN - 62 inches)","meters","19","5'2 IN - 62 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00261","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.6",,"Height","converted height (5'3 IN - 63 inches)","meters","20","5'3 IN - 63 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00262","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.626",,"Height","converted height (5'4 IN - 64 inches)","meters","21","5'4 IN - 64 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00263","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.651",,"Height","converted height (5'5 IN - 65 inches)","meters","22","5'5 IN - 65 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00264","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.676",,"Height","converted height (5'6 IN - 66 inches)","meters","23","5'6 IN - 66 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00265","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.702",,"Height","converted height (5'7 IN - 67 inches)","meters","24","5'7 IN - 67 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00266","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.727",,"Height","converted height (5'8 IN - 68 inches)","meters","25","5'8 IN - 68 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00267","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.753",,"Height","converted height (5'9 IN - 69 inches)","meters","26","5'9 IN - 69 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00268","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.778",,"Height","converted height (5'10 IN - 70 inches)","meters","27","5'10 IN - 70 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00269","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.803",,"Height","converted height (5'11 IN - 71 inches)","meters","28","5'11 IN - 71 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00270","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.829",,"Height","converted height (6'0 IN - 72 inches)","meters","29","6'0 IN - 72 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00271","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.854",,"Height","converted height (6'1 IN - 73 inches)","meters","30","6'1 IN - 73 inches","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00272","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","1.93",,"Height","converted height (6'2 IN+ - 74+ inches)","meters","31","6'2 IN+ - 74+ inches","Height","Height (metres)/self-reported - (D,G)","74+ inches converted to 76 inches",,"","v_042","d_00273","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","NA::a",,"not applicable","not applicable","meters","96","not applicable","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00274","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","NA::b",,"missing","missing","meters","99","not stated (99)","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00275","","" +"HWTGHTM","","cont","cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT","","cat","NA::b",,"missing","missing","meters","else","else","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00276","","" +"HWTGHTM","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]","","cont","copy",,"Height","Height","meters","[0.914,2.134]","Height","Height","Height (metres)/self-reported - (D,G)","Height is a reported in meters from 2005 CCHS onwards",,"","v_042","d_00277","","" +"HWTGHTM","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]","","cont","NA::a",,"not applicable","not applicable","meters","9.996","not applicable","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00278","","" +"HWTGHTM","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]","","cont","NA::b",,"missing","missing","meters","[9.997,9.999]","don't know (9.997), refusal (9.998), not stated (9.999)","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00279","","" +"HWTGHTM","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]","","cont","NA::b",,"missing","missing","meters","else","else","Height","Height (metres)/self-reported - (D,G)","",,"","v_042","d_00280","","" +"HWTDHTM","","cont","cchs_2001_i","[HWTADHTM]","ICES specific","cont","copy",,"Height","Height","meters","[0.914, 2.134]","Height","Height","Height (metres)/self-reported - (D)","",,"","v_043","d_00281","","" +"HWTDHTM","","cont","cchs_2001_i","[HWTADHTM]","ICES specific","cont","NA::a",,"Height","Height","meters","9.996","not applicable","Height","Height (metres)/self-reported - (D)","",,"","v_043","d_00282","","" +"HWTDHTM","","cont","cchs_2001_i","[HWTADHTM]","ICES specific","cont","NA::b",,"Height","Height","meters","[9.997,9.999]","don't know (9.997); refusal (9.998); not stated (9.999)","Height","Height (metres)/self-reported - (D)","",,"","v_043","d_00283","","" +"HWTDHTM","","cont","cchs_2001_i","[HWTADHTM]","ICES specific","cont","NA::b",,"Height","Height","meters","else","else","Height","Height (metres)/self-reported - (D)","",,"","v_043","d_00284","","" +"HWTDHTM","","cont","cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]","ICES specific","cont","copy",,"Height","Height","meters","[0.914, 2.134]","Height","Height","Height (metres)/self-reported - (D)","",,"","v_043","d_00285","","" +"HWTDHTM","","cont","cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]","ICES specific","cont","NA::a",,"not applicable","not applicable","meters","9.996","not applicable","Height","Height (metres)/self-reported - (D)","",,"","v_043","d_00286","","" +"HWTDHTM","","cont","cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]","ICES specific","cont","NA::b",,"missing","missing","meters","[9.997, 9.999]","don't know (9.997); refusal (9.998); not stated (9.999)","Height","Height (metres)/self-reported - (D)","",,"","v_043","d_00287","","" +"HWTDHTM","","cont","cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]","ICES specific","cont","NA::b",,"missing","missing","meters","else","else","Height","Height (metres)/self-reported - (D)","",,"","v_043","d_00288","","" +"HWTDWTK","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]","ICES confirmed","cont","copy",,"Weight","Weight - kilograms","kg","***","Weight - kilograms (D, G)","Weight","Weight - kilograms (D, G)","",,"","v_044","d_00289","","" +"HWTDWTK","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","kg","999.96","not applicable","Weight","Weight - kilograms (D, G)","",,"","v_044","d_00290","","" +"HWTDWTK","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]","ICES confirmed","cont","NA::b",,"missing","missing","kg","[999.97, 999.99]","don't know (999.97); refusal (999.98); not stated (999.99)","Weight","Weight - kilograms (D, G)","",,"","v_044","d_00291","","" +"HWTDWTK","","cont","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]","ICES confirmed","cont","NA::b",,"missing","missing","kg","else","else","Weight","Weight - kilograms (D, G)","",,"","v_044","d_00292","","" +"pack_years_cat","pack_years_catN/A_Func::pack_years_fun_cat","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","Func::pack_years_fun_cat",,"","","pack-years","","","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00293","","" +"pack_years_cat","pack_years_cat_cat8_1","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","1",8,"0","0 pack-years","pack-years","","0 pack-years","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00294","","" +"pack_years_cat","pack_years_cat_cat8_2","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","2",8,"0 to 0.01","0 to 0.01 pack-years","pack-years","","0 to 0.01 pack-years","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00295","","" +"pack_years_cat","pack_years_cat_cat8_3","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","3",8,"0.01 to 3.0","0.01 to 3.0 pack-years","pack-years","","0.01 to 3.0 pack-years","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00296","","" +"pack_years_cat","pack_years_cat_cat8_4","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","4",8,"3.0 to 9.0","3.0 to 9.0 pack-years","pack-years","","3.0 to 9.0 pack-years","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00297","","" +"pack_years_cat","pack_years_cat_cat8_5","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","5",8,"9.0 to 16.2","9.0 to 16.2 pack-years","pack-years","","9.0 to 16.2 pack-years","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00298","","" +"pack_years_cat","pack_years_cat_cat8_6","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","6",8,"16.2 to 25.7","16.2 to 25.7 pack-years","pack-years","","16.2 to 25.7 pack-years","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00299","","" +"pack_years_cat","pack_years_cat_cat8_7","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","7",8,"25.7 to 40.0","25.7 to 40.0 pack-years","pack-years","","25.7 to 40.0 pack-years","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00300","","" +"pack_years_cat","pack_years_cat_cat8_8","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","8",8,"40.0+","40.0+ pack-years","pack-years","","40.0+ pack-years","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00301","","" +"pack_years_cat","pack_years_cat_cat8_NA::a","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","NA::a",8,"not applicable","not applicable","pack-years","","not applicable","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00302","","" +"pack_years_cat","pack_years_cat_cat8_NA::b","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[pack_years_der]","","","NA::b",8,"missing","missing","pack-years","","missing","Categorical PackYears","Categorical smoking pack-years","",,"","v_045","d_00303","","" +"pack_years_der","","cont","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[SMKDSTY_A, DHHGAGE_cont, time_quit_smoking, SMKG203_cont, SMKG207_cont, SMK_204, SMK_05B, SMK_208, SMK_05C, SMKG01C_cont, SMK_01A]","","","Func::pack_years_fun",,"","","pack-years","","","PackYears","Smoking pack-years","PackYears variable derived from various harmonized smoking variables",,"","v_046","d_00304","","" +"pack_years_der","","cont","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[SMKDSTY_A, DHHGAGE_cont, time_quit_smoking, SMKG203_cont, SMKG207_cont, SMK_204, SMK_05B, SMK_208, SMK_05C, SMKG01C_cont, SMK_01A]","","","NA::b",,"missing","missing","pack-years","","","PackYears","Smoking pack-years","",,"","v_046","d_00305","","" +"PACFLEI","PACFLEI_cat_cat6_1","cat","cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]","ICES specific","cat","1",2,"Yes","Yes","Leisure physical activity","1","Yes","Leisure phys. activity","Leisure physical activity","",,"","v_047","d_00306","","" +"PACFLEI","PACFLEI_cat_cat6_2","cat","cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]","ICES specific","cat","2",2,"No","No","Leisure physical activity","2","No","Leisure phys. activity","Leisure physical activity","",,"","v_047","d_00307","","" +"PACFLEI","PACFLEI_cat_cat6_NA::a","cat","cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]","ICES specific","cat","NA::a",2,"not applicable","not applicable","Leisure physical activity","6","not applicable","Leisure phys. activity","Leisure physical activity","",,"","v_047","d_00308","","" +"PACFLEI","PACFLEI_cat_cat6_NA::b","cat","cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]","ICES specific","cat","NA::b",2,"missing","missing","Leisure physical activity","[7,9]","don't know (7); refusal (8); not stated (9) ","Leisure phys. activity","Leisure physical activity","",,"","v_047","d_00309","","" +"PACFLEI","PACFLEI_cat_cat6_NA::b","cat","cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]","ICES specific","cat","NA::b",2,"missing","missing","Leisure physical activity","else","else","Leisure phys. activity","Leisure physical activity","",,"","v_047","d_00310","","" +"RAC_6D","RAC_6D_cat_cat1","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES specific","cat","1",2,"Yes","Yes","","1","Yes","Help heavy housework","Needs help - heavy housework","",,"","v_048","d_00311","","" +"RAC_6D","RAC_6D_cat_cat2","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES specific","cat","2",2,"No","No","","2","No","Help heavy housework","Needs help - heavy housework","",,"","v_048","d_00312","","" +"RAC_6D","RAC_6D_cat_NA::a","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES specific","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Help heavy housework","Needs help - heavy housework","",,"","v_048","d_00313","","" +"RAC_6D","RAC_6D_cat_NA::b","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES specific","cat","NA::b",2,"missing","missing","","[7,9]","dont know (7); refusal (8); not stated (9)","Help heavy housework","Needs help - heavy housework","",,"","v_048","d_00314","","" +"RAC_6D","RAC_6D_cat_NA::b","cat","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D","ICES specific","cat","NA::b",2,"missing","missing","","else","else","Help heavy housework","Needs help - heavy housework","",,"","v_048","d_00315","","" +"SDCFIMM","SDCFIMM_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]","ICES confirmed","cat","1",2,"Yes","Yes","","1","Yes","Immigrant status","Immigrant Status (D)","",,"","v_049","d_00316","","" +"SDCFIMM","SDCFIMM_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2019","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]","ICES confirmed","cat","2",2,"No","No","","2","No","Immigrant status","Immigrant Status (D)","",,"","v_049","d_00317","","" +"SDCFIMM","SDCFIMM_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2020","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Immigrant status","Immigrant Status (D)","",,"","v_049","d_00318","","" +"SDCFIMM","SDCFIMM_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2021","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Immigrant status","Immigrant Status (D)","",,"","v_049","d_00319","","" +"SDCFIMM","SDCFIMM_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2022","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","Immigrant status","Immigrant Status (D)","",,"","v_049","d_00320","","" +"SDCGCGT","SDCGCGT_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]","ICES altered","cat","1",2,"White","White","","1","White","Ethnicity","Cultural or racial origin - (D, G)","",,"","v_050","d_00321","","" +"SDCGCGT","SDCGCGT_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]","ICES altered","cat","2",2,"Non-white","Non-white","","2","Visible minority","Ethnicity","Cultural or racial origin - (D, G)","",,"","v_050","d_00322","","" +"SDCGCGT","SDCGCGT_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]","ICES altered","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","Ethnicity","Cultural or racial origin - (D, G)","",,"","v_050","d_00323","","" +"SDCGCGT","SDCGCGT_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]","ICES altered","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Ethnicity","Cultural or racial origin - (D, G)","CCHS 2001 missing don't know (7), refusal (8)",,"","v_050","d_00324","","" +"SDCGCGT","SDCGCGT_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]","ICES altered","cat","NA::b",2,"missing","missing","","else","else","Ethnicity","Cultural or racial origin - (D, G)","",,"","v_050","d_00325","","" +"SDCDCGT_A","SDCDCGT_A_cat13_1","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","1",14,"White","White","","1","White","Ethnicity","Cultural or racial origin","",,"","v_051","d_00326","","" +"SDCDCGT_A","SDCDCGT_A_cat13_2","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","2",14,"Black","Black","","2","Black","Ethnicity","Cultural or racial origin","",,"","v_051","d_00327","","" +"SDCDCGT_A","SDCDCGT_A_cat13_3","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","3",14,"Korean","Korean","","3","Korean","Ethnicity","Cultural or racial origin","",,"","v_051","d_00328","","" +"SDCDCGT_A","SDCDCGT_A_cat13_4","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","4",14,"Filipino","Filipino","","4","Filipino","Ethnicity","Cultural or racial origin","",,"","v_051","d_00329","","" +"SDCDCGT_A","SDCDCGT_A_cat13_5","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","5",14,"Japanese","Japanese","","5","Japanese","Ethnicity","Cultural or racial origin","",,"","v_051","d_00330","","" +"SDCDCGT_A","SDCDCGT_A_cat13_6","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","6",14,"Chinese","Chinese","","6","Chinese","Ethnicity","Cultural or racial origin","",,"","v_051","d_00331","","" +"SDCDCGT_A","SDCDCGT_A_cat13_7","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","7",14,"Aboriginal/N ame","Aboriginal/N ame","","7","Aboriginal/N ame","Ethnicity","Cultural or racial origin","",,"","v_051","d_00332","","" +"SDCDCGT_A","SDCDCGT_A_cat13_8","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","8",14,"South Asian","South Asian","","8","South Asian","Ethnicity","Cultural or racial origin","",,"","v_051","d_00333","","" +"SDCDCGT_A","SDCDCGT_A_cat13_9","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","9",14,"South East Asian","South East Asian","","9","South East Asian","Ethnicity","Cultural or racial origin","",,"","v_051","d_00334","","" +"SDCDCGT_A","SDCDCGT_A_cat13_10","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","10",14,"Arab","Arab","","10","Arab","Ethnicity","Cultural or racial origin","",,"","v_051","d_00335","","" +"SDCDCGT_A","SDCDCGT_A_cat13_11","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","11",14,"West Asian","West Asian","","11","West Asian","Ethnicity","Cultural or racial origin","",,"","v_051","d_00336","","" +"SDCDCGT_A","SDCDCGT_A_cat13_12","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","12",14,"Latin American","Latin American","","12","Latin American","Ethnicity","Cultural or racial origin","",,"","v_051","d_00337","","" +"SDCDCGT_A","SDCDCGT_A_cat13_13","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","13",14,"Other","Other","","13","Other","Ethnicity","Cultural or racial origin","",,"","v_051","d_00338","","" +"SDCDCGT_A","SDCDCGT_A_cat13_13","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","14",14,"Multiple origins","Multiple origins","","14","Multiple origins","Ethnicity","Cultural or racial origin","",,"","v_051","d_00339","","" +"SDCDCGT_A","SDCDCGT_A_cat13_NA::a","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","NA::a",14,"not applicable","not applicable","","96","not applicable","Ethnicity","Cultural or racial origin","",,"","v_051","d_00340","","" +"SDCDCGT_A","SDCDCGT_A_cat13_NA::b","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","NA::b",14,"missing","missing","","[97, 99]","don't know (97); refusal (98); not stated (99)","Ethnicity","Cultural or racial origin","",,"","v_051","d_00341","","" +"SDCDCGT_A","SDCDCGT_A_cat13_NA::b","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ","ICES specific","cat","NA::b",14,"missing","missing","","else","else","Ethnicity","Cultural or racial origin","",,"","v_051","d_00342","","" +"SDCDCGT_A","SDCDCGT_A_cat13_1","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","1",13,"White only","White only","","1","White only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00343","","" +"SDCDCGT_A","SDCDCGT_A_cat13_2","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","2",13,"South Asian only","South Asian only","","8","South Asian only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00344","","" +"SDCDCGT_A","SDCDCGT_A_cat13_3","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","3",13,"Chinese only","Chinese only","","6","Chinese only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00345","","" +"SDCDCGT_A","SDCDCGT_A_cat13_4","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","4",13,"Black only","Black only","","2","Black only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00346","","" +"SDCDCGT_A","SDCDCGT_A_cat13_5","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","5",13,"Filipino only","Filipino only","","4","Filipino only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00347","","" +"SDCDCGT_A","SDCDCGT_A_cat13_6","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","6",13,"Latin American only","Latin American only","","12","Latin American only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00348","","" +"SDCDCGT_A","SDCDCGT_A_cat13_7","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","7",13,"Arab only","Arab only","","10","Arab only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00349","","" +"SDCDCGT_A","SDCDCGT_A_cat13_8","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","8",13,"Southeastern Asian only","Southeastern Asian only","","9","Southeastern Asian only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00350","","" +"SDCDCGT_A","SDCDCGT_A_cat13_9","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","9",13,"West Asian only","West Asian only","","11","West Asian only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00351","","" +"SDCDCGT_A","SDCDCGT_A_cat13_10","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","10",13,"Korean only","Korean only","","3","Korean only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00352","","" +"SDCDCGT_A","SDCDCGT_A_cat13_11","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","11",13,"Japenese only","Japenese only","","5","Japenese only","Ethnicity","Cultural or racial origin","",,"","v_051","d_00353","","" +"SDCDCGT_A","SDCDCGT_A_cat13_12","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","12",13,"Other racial or cultural origin (only)","Other racial or cultural origin (only)","","13","Other racial or cultural origin (only)","Ethnicity","Cultural or racial origin","",,"","v_051","d_00354","","" +"SDCDCGT_A","SDCDCGT_A_cat13_13","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","13",13,"Multiple racial or cultural origins","Multiple racial or cultural origins","","14","Multiple racial or cultural origins","Ethnicity","Cultural or racial origin","",,"","v_051","d_00355","","" +"SDCDCGT_A","SDCDCGT_A_cat13_NA::a","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","NA::a",13,"not applicable","not applicable","","96","not applicable","Ethnicity","Cultural or racial origin","",,"","v_051","d_00356","","" +"SDCDCGT_A","SDCDCGT_A_cat13_NA::b","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","NA::b",13,"missing","missing","","[97, 99]","don't know (97); refusal (98); not stated (99)","Ethnicity","Cultural or racial origin","",,"","v_051","d_00357","","" +"SDCDCGT_A","SDCDCGT_A_cat13_NA::b","cat","cchs2015_2016_i, cchs2017_2018_i","[SDCDVCGT]","ICES specific","cat","NA::b",13,"missing","missing","","else","else","Ethnicity","Cultural or racial origin","",,"","v_051","d_00358","","" +"SDCDCGT_B","SDCDCGT_B_cat7_1","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","1",7,"White","White","","1","White","Ethnicity","Cultural or racial origin","",,"","v_052","d_00359","","" +"SDCDCGT_B","SDCDCGT_B_cat7_2","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","2",7,"Black","Black","","2","Black","Ethnicity","Cultural or racial origin","",,"","v_052","d_00360","","" +"SDCDCGT_B","SDCDCGT_B_cat7_3","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","3",7,"Chinese","Chinese","","6","Chinese","Ethnicity","Cultural or racial origin","",,"","v_052","d_00361","","" +"SDCDCGT_B","SDCDCGT_B_cat7_4","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","4",7,"Aboriginal","Aboriginal","","7","Aboriginal","Ethnicity","Cultural or racial origin","",,"","v_052","d_00362","","" +"SDCDCGT_B","SDCDCGT_B_cat7_5","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","5",7,"Japanese/Korean/South East Asian/Filipino","Japanese/Korean/South East Asian/Filipino","","[3]","Japanese/Korean/South East Asian/Filipino","Ethnicity","Cultural or racial origin","",,"","v_052","d_00363","","" +"SDCDCGT_B","SDCDCGT_B_cat7_5","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","5",7,"Japanese/Korean/South East Asian/Filipino","Japanese/Korean/South East Asian/Filipino","","[5]","Japanese/Korean/South East Asian/Filipino","Ethnicity","Cultural or racial origin","",,"","v_052","d_00364","","" +"SDCDCGT_B","SDCDCGT_B_cat7_5","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","5",7,"Japanese/Korean/South East Asian/Filipino","Japanese/Korean/South East Asian/Filipino","","[9]","Japanese/Korean/South East Asian/Filipino","Ethnicity","Cultural or racial origin","",,"","v_052","d_00365","","" +"SDCDCGT_B","SDCDCGT_B_cat7_6","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","6",7,"other/multiple origin/unknown/Latin American","other/multiple origin/unknown/Latin American","","[12]","other/multiple origin/unknown/Latin American","Ethnicity","Cultural or racial origin","",,"","v_052","d_00366","","" +"SDCDCGT_B","SDCDCGT_B_cat7_6","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","6",7,"other/multiple origin/unknown/Latin American","other/multiple origin/unknown/Latin American","","[14]","other/multiple origin/unknown/Latin American","Ethnicity","Cultural or racial origin","",,"","v_052","d_00367","","" +"SDCDCGT_B","SDCDCGT_B_cat7_7","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","7",7,"South Asian/Arab/West Asian","South Asian/Arab/West Asian","","[8]","South Asian/Arab/West Asian","Ethnicity","Cultural or racial origin","",,"","v_052","d_00368","","" +"SDCDCGT_B","SDCDCGT_B_cat7_7","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","7",7,"South Asian/Arab/West Asian","South Asian/Arab/West Asian","","[10,11]","South Asian/Arab/West Asian","Ethnicity","Cultural or racial origin","",,"","v_052","d_00369","","" +"SDCDCGT_B","SDCDCGT_B_cat7_NA::a","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","NA::a",7,"not applicable","not applicable","","96","not applicable","Ethnicity","Cultural or racial origin","",,"","v_052","d_00370","","" +"SDCDCGT_B","SDCDCGT_B_cat7_NA::b","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","NA::b",7,"missing","missing","","[97,99]","missing","Ethnicity","Cultural or racial origin","",,"","v_052","d_00371","","" +"SDCDCGT_B","SDCDCGT_B_cat7_NA::b","cat","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ","ICES specific","cat","NA::b",7,"missing","missing","","else","else","Ethnicity","Cultural or racial origin","",,"","v_052","d_00372","","" +"SLP_02","SLP_02_cat5_1","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]","ICES altered","cat","1",5,"None of the time","None of the time","","1","None of the time","Trouble sleeping","Freq. - trouble sleeping","",,"","v_053","d_00373","","" +"SLP_02","SLP_02_cat5_2","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]","ICES altered","cat","2",5,"Little of the time","Little of the time","","2","Little of the time","Trouble sleeping","Freq. - trouble sleeping","",,"","v_053","d_00374","","" +"SLP_02","SLP_02_cat5_3","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]","ICES altered","cat","3",5,"Some of the time","Some of the time","","3","Some of the time","Trouble sleeping","Freq. - trouble sleeping","",,"","v_053","d_00375","","" +"SLP_02","SLP_02_cat5_4","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]","ICES altered","cat","4",5,"Most of the time","Most of the time","","4","Most of the time","Trouble sleeping","Freq. - trouble sleeping","",,"","v_053","d_00376","","" +"SLP_02","SLP_02_cat5_5","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]","ICES altered","cat","5",5,"All the time","All the time","","5","All the time","Trouble sleeping","Freq. - trouble sleeping","",,"","v_053","d_00377","","" +"SLP_02","SLP_02_cat5_NA::a","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]","ICES altered","cat","NA::a",5,"not applicable","not applicable","","6","not applicable","Trouble sleeping","Freq. - trouble sleeping","",,"","v_053","d_00378","","" +"SLP_02","SLP_02_cat5_NA::b","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]","ICES altered","cat","NA::b",5,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Trouble sleeping","Freq. - trouble sleeping","",,"","v_053","d_00379","","" +"SLP_02","SLP_02_cat5_NA::b","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]","ICES altered","cat","NA::b",5,"missing","missing","","else","else","Trouble sleeping","Freq. - trouble sleeping","",,"","v_053","d_00380","","" +"SLP_02_A","SLP_02_A_cat3_1","cat","cchs2001_p, cchs2001_i","[GENA_04]","ICES altered","cat","1",3,"Most of the time","Most of the time","","1","Most of the time","Trouble sleeping","Freq. - trouble sleeping","CCHS 2001 has different categories from other cycles",,"","v_054","d_00381","","" +"SLP_02_A","SLP_02_A_cat3_2","cat","cchs2001_p, cchs2001_i","[GENA_04]","ICES altered","cat","2",3,"Sometimes","Sometimes","","2","Sometimes","Trouble sleeping","Freq. - trouble sleeping","",,"","v_054","d_00382","","" +"SLP_02_A","SLP_02_A_cat3_3","cat","cchs2001_p, cchs2001_i","[GENA_04]","ICES altered","cat","3",3,"Never","Never","","3","Never","Trouble sleeping","Freq. - trouble sleeping","",,"","v_054","d_00383","","" +"SLP_02_A","SLP_02_A_cat3_NA::a","cat","cchs2001_p, cchs2001_i","[GENA_04]","ICES altered","cat","NA::a",3,"not applicable","not applicable","","6","not applicable","Trouble sleeping","Freq. - trouble sleeping","",,"","v_054","d_00384","","" +"SLP_02_A","SLP_02_A_cat3_NA::b","cat","cchs2001_p, cchs2001_i","[GENA_04]","ICES altered","cat","NA::b",3,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Trouble sleeping","Freq. - trouble sleeping","",,"","v_054","d_00385","","" +"SLP_02_A","SLP_02_A_cat3_NA::b","cat","cchs2001_p, cchs2001_i","[GENA_04]","ICES altered","cat","NA::b",3,"missing","missing","","else","else","Trouble sleeping","Freq. - trouble sleeping","",,"","v_054","d_00386","","" +"SLP_03","SLP_03_cat5_1","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]","ICES altered","cat","1",5,"None of the time","None of the time","","1","None of the time","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_055","d_00387","","" +"SLP_03","SLP_03_cat5_2","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]","ICES altered","cat","2",5,"Little of the time","Little of the time","","2","Little of the time","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_055","d_00388","","" +"SLP_03","SLP_03_cat5_3","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]","ICES altered","cat","3",5,"Some of the time","Some of the time","","3","Some of the time","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_055","d_00389","","" +"SLP_03","SLP_03_cat5_4","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]","ICES altered","cat","4",5,"Most of the time","Most of the time","","4","Most of the time","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_055","d_00390","","" +"SLP_03","SLP_03_cat5_5","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]","ICES altered","cat","5",5,"All the time","All the time","","5","All the time","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_055","d_00391","","" +"SLP_03","SLP_03_cat3_NA::a","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]","ICES altered","cat","NA::a",3,"not applicable","not applicable","","6","not applicable","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_055","d_00392","","" +"SLP_03","SLP_03_cat3_NA::b","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]","ICES altered","cat","NA::b",3,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_055","d_00393","","" +"SLP_03","SLP_03_cat3_NA::b","cat","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]","ICES altered","cat","NA::b",3,"missing","missing","","else","else","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_055","d_00394","","" +"SLP_03_A","SLP_03_A_cat3_1","cat","cchs2001_p, cchs2001_i","[GENA_05]","ICES altered","cat","1",3,"Most of the time","Most of the time","","1","Most of the time","Sleep refreshing","Freq. - find sleep refreshing","CCHS 2001 has different categories from other cycles",,"","v_056","d_00395","","" +"SLP_03_A","SLP_03_A_cat3_2","cat","cchs2001_p, cchs2001_i","[GENA_05]","ICES altered","cat","2",3,"Sometimes","Sometimes","","2","Sometimes","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_056","d_00396","","" +"SLP_03_A","SLP_03_A_cat3_3","cat","cchs2001_p, cchs2001_i","[GENA_05]","ICES altered","cat","3",3,"Never","Never","","3","Never","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_056","d_00397","","" +"SLP_03_A","SLP_03_A_cat3_NA::a","cat","cchs2001_p, cchs2001_i","[GENA_05]","ICES altered","cat","NA::a",3,"not applicable","not applicable","","6","not applicable","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_056","d_00398","","" +"SLP_03_A","SLP_03_A_cat3_NA::b","cat","cchs2001_p, cchs2001_i","[GENA_05]","ICES altered","cat","NA::b",3,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_056","d_00399","","" +"SLP_03_A","SLP_03_A_cat3_NA::b","cat","cchs2001_p, cchs2001_i","[GENA_05]","ICES altered","cat","NA::b",3,"missing","missing","","else","else","Sleep refreshing","Freq. - find sleep refreshing","",,"","v_056","d_00400","","" +"SLPG01_B","SLPG01_B_cat11_1","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","1",11,"<2 hours","<2 hours","Hours","1","<2 hours","Hours sleep","No./hours spent sleeping each night","",,"Possible mistake with <2 hours ","v_057","d_00401","","" +"SLPG01_B","SLPG01_B_cat11_2","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","2",11,"3-<4 hours","3-<4 hours","Hours","2","3-<4 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00402","","" +"SLPG01_B","SLPG01_B_cat11_3","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","3",11,"4-<5 hours","4-<5 hours","Hours","3","4-<5 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00403","","" +"SLPG01_B","SLPG01_B_cat11_4","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","4",11,"5-<6 hours","5-<6 hours","Hours","4","5-<6 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00404","","" +"SLPG01_B","SLPG01_B_cat11_5","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","5",11,"6-<7 hours","6-<7 hours","Hours","5","6-<7 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00405","","" +"SLPG01_B","SLPG01_B_cat11_6","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","6",11,"7-<8 hours","7-<8 hours","Hours","6","7-<8 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00406","","" +"SLPG01_B","SLPG01_B_cat11_7","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","7",11,"8-<9 hours","8-<9 hours","Hours","7","8-<9 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00407","","" +"SLPG01_B","SLPG01_B_cat11_8","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","8",11,"9-<10 hours","9-<10 hours","Hours","8","9-<10 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00408","","" +"SLPG01_B","SLPG01_B_cat11_9","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","9",11,"10-<11 hours","10-<11 hours","Hours","9","10-<11 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00409","","" +"SLPG01_B","SLPG01_B_cat11_10","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","10",11,"11-<12 hours","11-<12 hours","Hours","10","11-<12 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00410","","" +"SLPG01_B","SLPG01_B_cat11_11","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","11",11,">= 12 hours",">= 12 hours","Hours","11",">= 12 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00411","","" +"SLPG01_B","SLPG01_B_cat11_NA::a","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","NA::a",11,"not applicable","not applicable","Hours","96","not applicable","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00412","","" +"SLPG01_B","SLPG01_B_cat11_NA::a","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","NA::b",11,"missing","missing","Hours","[97,99]","don't know (97); refusal (98); not stated (99)","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00413","","" +"SLPG01_B","SLPG01_B_cat11_NA::b","cat","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]","ICES specific","cat","NA::b",11,"missing","missing","Hours","else","else","Hours sleep","No./hours spent sleeping each night","",,"","v_057","d_00414","","" +"SPLG01_C","SPLG01_C_cat12_1","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_005","ICES specific","cat","1",12,"<2 hours","<2 hours","Hours","1","<2 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00415","","" +"SPLG01_C","SPLG01_C_cat12_2","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_006","ICES specific","cat","2",12,"2-<3 hours","2-<3 hours","Hours","2","2-<3 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00416","","" +"SPLG01_C","SPLG01_C_cat12_3","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_007","ICES specific","cat","3",12,"3-<4 hours","3-<4 hours","Hours","3","3-<4 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00417","","" +"SPLG01_C","SPLG01_C_cat12_4","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_008","ICES specific","cat","4",12,"4-<5 hours","4-<5 hours","Hours","4","4-<5 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00418","","" +"SPLG01_C","SPLG01_C_cat12_5","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_009","ICES specific","cat","5",12,"5-<6 hours","5-<6 hours","Hours","5","5-<6 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00419","","" +"SPLG01_C","SPLG01_C_cat12_6","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_010","ICES specific","cat","6",12,"6-<7 hours","6-<7 hours","Hours","6","6-<7 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00420","","" +"SPLG01_C","SPLG01_C_cat12_7","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_011","ICES specific","cat","7",12,"7-<8 hours","7-<8 hours","Hours","7","7-<8 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00421","","" +"SPLG01_C","SPLG01_C_cat12_8","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_012","ICES specific","cat","8",12,"8-<9 hours","8-<9 hours","Hours","8","8-<9 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00422","","" +"SPLG01_C","SPLG01_C_cat12_9","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_013","ICES specific","cat","9",12,"9-<10 hours","9-<10 hours","Hours","9","9-<10 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00423","","" +"SPLG01_C","SPLG01_C_cat12_10","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_014","ICES specific","cat","10",12,"10-<11 hours","10-<11 hours","Hours","10","10-<11 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00424","","" +"SPLG01_C","SPLG01_C_cat12_11","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_015","ICES specific","cat","11",12,"11-<12 hours","11-<12 hours","Hours","11","11-<12 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00425","","" +"SPLG01_C","SPLG01_C_cat12_12","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_016","ICES specific","cat","12",12,">= 12 hours",">= 12 hours","Hours","12",">= 12 hours","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00426","","" +"SPLG01_C","SPLG01_C_cat12_NA::a","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_017","ICES specific","cat","NA::a",12,"not applicable","not applicable","Hours","96","not applicable","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00427","","" +"SPLG01_C","SPLG01_C_cat12_NA::a","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_018","ICES specific","cat","NA::b",12,"missing","missing","Hours","[97,99]","don't know (97); refusal (98); not stated (99)","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00428","","" +"SPLG01_C","SPLG01_C_cat12_NA::b","cat","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_019","ICES specific","cat","NA::b",12,"missing","missing","Hours","else","else","Hours sleep","No./hours spent sleeping each night","",,"","v_058","d_00429","","" +"SMK_01A","SMK_01A_cat2_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]","ICES confirmed","cat","1",2,"yes","yes","","1","Yes","s100","In lifetime, smoked 100 or more cigarettes","",,"","v_059","d_00430","","" +"SMK_01A","SMK_01A_cat2_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]","ICES confirmed","cat","2",2,"no","no","","2","No","s100","In lifetime, smoked 100 or more cigarettes","",,"","v_059","d_00431","","" +"SMK_01A","SMK_01A_cat2_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]","ICES confirmed","cat","NA::a",2,"not applicable","not applicable","","6","not applicable","s100","In lifetime, smoked 100 or more cigarettes","",,"","v_059","d_00432","","" +"SMK_01A","SMK_01A_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]","ICES confirmed","cat","NA::b",2,"missing","missing","","[7,9]","don't know (7); refusal (8); not stated (9)","s100","In lifetime, smoked 100 or more cigarettes","",,"","v_059","d_00433","","" +"SMK_01A","SMK_01A_cat2_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]","ICES confirmed","cat","NA::b",2,"missing","missing","","else","else","s100","In lifetime, smoked 100 or more cigarettes","",,"","v_059","d_00434","","" +"SMK_05B","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]","ICES confirmed","cont","copy",,"Cigarettes/day - occasional","# of cigarettes smoked daily - daily smoker","cigarettes","[1,99]","# of cigarettes smoked daily - occasional smoker","cigdayo","# of cigarettes smoked daily - occasional smoker","",,"","v_060","d_00435","","" +"SMK_05B","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","cigarettes","996","not applicable","cigdayo","# of cigarettes smoked daily - occasional smoker","",,"","v_060","d_00436","","" +"SMK_05B","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]","ICES confirmed","cont","NA::b",,"missing","missing","cigarettes","[997,999]","don't know (997); refusal (998); not stated (999)","cigdayo","# of cigarettes smoked daily - occasional smoker","",,"","v_060","d_00437","","" +"SMK_05B","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]","ICES confirmed","cont","NA::b",,"missing","missing","cigarettes","else","else","cigdayo","# of cigarettes smoked daily - occasional smoker","",,"","v_060","d_00438","","" +"SMK_05C","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]","ICES confirmed","cont","copy",,"# days smoked at least 1 cigarette","# days smoked at least 1 cigarette","days","[0,31]","# days smoked at least 1 cigarette","Number of days - smoked 1 cigarette or more (occ. smoker)","In the past month, on how many days have you smoked 1 or more cigarettes?","",,"","v_061","d_00439","","" +"SMK_05C","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","days","96","not applicable","Number of days - smoked 1 cigarette or more (occ. smoker)","In the past month, on how many days have you smoked 1 or more cigarettes?","",,"","v_061","d_00440","","" +"SMK_05C","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]","ICES confirmed","cont","NA::b",,"missing","missing","days","[97,99]","don't know (97); refusal (98); not stated (99)","Number of days - smoked 1 cigarette or more (occ. smoker)","In the past month, on how many days have you smoked 1 or more cigarettes?","",,"","v_061","d_00441","","" +"SMK_05C","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]","ICES confirmed","cont","NA::b",,"missing","missing","days","else","else","Number of days - smoked 1 cigarette or more (occ. smoker)","In the past month, on how many days have you smoked 1 or more cigarettes?","",,"","v_061","d_00442","","" +"SMK_09A_A","SMK_09A_A_cat4_1","cat","cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A","ICES confirmed","cat","1",4,"<1 year","Less than one year ago","years","1","Less than one year ago","stpd","When did you stop smoking daily - former daily","",,"","v_062","d_00443","","" +"SMK_09A_A","SMK_09A_A_cat4_2","cat","cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A","ICES confirmed","cat","2",4,"1 to 2 years","1 year to 2 years ago","years","2","1 year to 2 years ago","stpd","When did you stop smoking daily - former daily","",,"","v_062","d_00444","","" +"SMK_09A_A","SMK_09A_A_cat4_3","cat","cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A","ICES confirmed","cat","3",4,"3 to 5 years","3 years to 5 years ago","years","3","3 years to 5 years ago","stpd","When did you stop smoking daily - former daily","",,"","v_062","d_00445","","" +"SMK_09A_A","SMK_09A_A_cat4_4","cat","cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A","ICES confirmed","cat","4",4,">5 years","More than 5 years ago","years","4","More than 5 years ago","stpd","When did you stop smoking daily - former daily","",,"","v_062","d_00446","","" +"SMK_09A_A","SMK_09A_A_cat4_NA::a","cat","cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A","ICES confirmed","cat","NA::a",4,"not applicable","not applicable","years","6","not applicable","stpd","When did you stop smoking daily - former daily","",,"","v_062","d_00447","","" +"SMK_09A_A","SMK_09A_A_cat4_NA::b","cat","cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A","ICES confirmed","cat","NA::b",4,"missing","missing","years","[7,9]","don't know (7); refusal (8); not stated (9)","stpd","When did you stop smoking daily - former daily","",,"","v_062","d_00448","","" +"SMK_09A_A","SMK_09A_A_cat4_NA::b","cat","cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A","ICES confirmed","cat","NA::b",4,"missing","missing","years","else","else","stpd","When did you stop smoking daily - former daily","",,"","v_062","d_00449","","" +"SMK_09A_B","SMK_09A_B_cat4_1","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]","ICES confirmed","cat","1",4,"<1 year","Less than one year ago","years","1","Less than 1 year","stpd","When did you stop smoking daily - former daily","",,"","v_063","d_00450","","" +"SMK_09A_B","SMK_09A_B_cat4_2","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]","ICES confirmed","cat","2",4,"1 to <2 years","1 year to less than 2 years ago","years","2","1 to <2 years","stpd","When did you stop smoking daily - former daily","",,"","v_063","d_00451","","" +"SMK_09A_B","SMK_09A_B_cat4_3","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2020","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]","ICES confirmed","cat","3",4,"2 to <3 years","2 years to less than 3 years ago","years","3","2 to <3 years","stpd","When did you stop smoking daily - former daily","",,"","v_063","d_00452","","" +"SMK_09A_B","SMK_09A_B_cat4_4","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2021","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]","ICES confirmed","cat","4",4,">= 3 years","3 or more years ago","years","4","3 years or more","stpd","When did you stop smoking daily - former daily","",,"","v_063","d_00453","","" +"SMK_09A_B","SMK_09A_B_cat4_NA::a","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2022","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]","ICES confirmed","cat","NA::a",4,"not applicable","not applicable","years","6","not applicable","stpd","When did you stop smoking daily - former daily","",,"","v_063","d_00454","","" +"SMK_09A_B","SMK_09A_B_cat4_NA::b","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2023","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]","ICES confirmed","cat","NA::b",4,"missing","missing","years","[7,9]","don't know (7); refusal (8); not stated (9)","stpd","When did you stop smoking daily - former daily","",,"","v_063","d_00455","","" +"SMK_09A_B","SMK_09A_B_cat4_NA::b","cat","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2024","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]","ICES confirmed","cat","NA::b",4,"missing","missing","years","else","else","stpd","When did you stop smoking daily - former daily","",,"","v_063","d_00456","","" +"SMK_204","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]","ICES confirmed","cont","copy",,"Cigarettes/day - daily","# of cigarettes smoked daily - daily smoker","cigarettes","[1,99]","# of cigarettes smoked daily - daily smoker","cigdayd","# of cigarettes smoked daily - daily smoker","",,"","v_064","d_00457","","" +"SMK_204","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","cigarettes","996","not applicable","cigdayd","# of cigarettes smoked daily - daily smoker","",,"","v_064","d_00458","","" +"SMK_204","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]","ICES confirmed","cont","NA::b",,"missing","missing","cigarettes","[997,999]","don't know (997); refusal (998); not stated (999)","cigdayd","# of cigarettes smoked daily - daily smoker","",,"","v_064","d_00459","","" +"SMK_204","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]","ICES confirmed","cont","NA::b",,"missing","missing","cigarettes","else","else","cigdayd","# of cigarettes smoked daily - daily smoker","",,"","v_064","d_00460","","" +"SMK_208","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]","ICES confirmed","cont","copy",,"Cigarettes/day - former daily","Cigarettes/day - former daily","cigarettes","[1,99]","# of cigarettes smoke each day - former daily","# of cigarettes smoke each day - former daily","# of cigarettes smoked each day - former daily smoker","",,"","v_065","d_00461","","" +"SMK_208","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]","ICES confirmed","cont","NA::a",,"not applicable","not applicable","cigarettes","996","not applicable","# of cigarettes smoke each day - former daily","# of cigarettes smoked each day - former daily smoker","",,"","v_065","d_00462","","" +"SMK_208","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]","ICES confirmed","cont","NA::b",,"missing","missing","cigarettes","[997,999]","don't know (997); refusal (998); not stated (999)","# of cigarettes smoke each day - former daily","# of cigarettes smoked each day - former daily smoker","",,"","v_065","d_00463","","" +"SMK_208","","cont","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]","ICES confirmed","cont","NA::b",,"missing","missing","cigarettes","else","else","# of cigarettes smoke each day - former daily","# of cigarettes smoked each day - former daily smoker","",,"","v_065","d_00464","","" +"SMKDSTY_A","SMKDSTY_A_cat6_1","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","ICES confirmed","cat","1",6,"Daily","Daily smoker","","1","Daily","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","",,"","v_066","d_00465","","" +"SMKDSTY_A","SMKDSTY_A_cat6_2","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","ICES confirmed","cat","2",6,"Occasional (former daily)","Former daily current occasional smoker","","2","Occasional","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","",,"","v_066","d_00466","","" +"SMKDSTY_A","SMKDSTY_A_cat6_3","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","ICES confirmed","cat","3",6,"Always occasional","Never daily current occasional smoker","","3","Always occasional","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","",,"","v_066","d_00467","","" +"SMKDSTY_A","SMKDSTY_A_cat6_4","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","ICES confirmed","cat","4",6,"Former daily","Former daily current nonsmoker","","4","Former daily","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","",,"","v_066","d_00468","","" +"SMKDSTY_A","SMKDSTY_A_cat6_5","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","ICES confirmed","cat","5",6,"Former occasional","Never daily current nonsmoker (former occasional)","","5","Former occasional","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","",,"","v_066","d_00469","","" +"SMKDSTY_A","SMKDSTY_A_cat6_6","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","ICES confirmed","cat","6",6,"Never smoked","Never smoked","","6","Never smoked","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","",,"","v_066","d_00470","","" +"SMKDSTY_A","SMKDSTY_A_cat6_NA::a","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","ICES confirmed","cat","NA::a",6,"not applicable","not applicable","","96","not applicable","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","",,"","v_066","d_00471","","" +"SMKDSTY_A","SMKDSTY_A_cat6_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","ICES confirmed","cat","NA::b",6,"missing","missing","","[97,99]","don't know (97); refusal (98); not stated (99)","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","",,"","v_066","d_00472","","" +"SMKDSTY_A","SMKDSTY_A_cat6_NA::b","cat","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","ICES confirmed","cat","NA::b",6,"missing","missing","","else","else","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","",,"","v_066","d_00473","","" +"SMKDSTY_cat5","SMKDSTY_cat5_1","cat","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY","ICES confirmed","cat","1",5,"Daily","Current daily smoker","","1","Daily","Smoking status","Type of smoker: daily, occasional, former daily, former occasional, never","",,"","v_067","d_00474","","" +"SMKDSTY_cat5","SMKDSTY_cat5_2","cat","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY","ICES confirmed","cat","2",5,"Occasional","Current occasional smoker","","2","Occasional","Smoking status","Type of smoker: daily, occasional, former daily, former occasional, never","",,"","v_067","d_00475","","" +"SMKDSTY_cat5","SMKDSTY_cat5_3","cat","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY","ICES confirmed","cat","3",5,"Former daily","Former daily smoker","","3","Former daily","Smoking status","Type of smoker: daily, occasional, former daily, former occasional, never","",,"","v_067","d_00476","","" +"SMKDSTY_cat5","SMKDSTY_cat5_4","cat","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY","ICES confirmed","cat","4",5,"Former occasional","Former occasional","","[4,5]","Former occasional","Smoking status","Type of smoker: daily, occasional, former daily, former occasional, never","SMKDSTY_cat5 is a 5 category variable for smoking status for cycles up to 2018. Prior to 2015, 'occasional' and 'always occasional' are combined to form the current 'occasional' category. 2015 onwards, 'former occasional' and 'experimental' are combined to form the current 'former occasional' category",,"","v_067","d_00477","","" +"SMKDSTY_cat5","SMKDSTY_cat5_5","cat","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY","ICES confirmed","cat","5",5,"Never smoked","Never smoked","","6","Never smoked","Smoking status","Type of smoker: daily, occasional, former daily, former occasional, never","",,"","v_067","d_00478","","" +"SMKDSTY_cat5","SMKDSTY_cat5_NA::a","cat","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY","ICES confirmed","cat","NA::a",5,"not applicable","not applicable","","96","not applicable","Smoking status","Type of smoker: daily, occasional, former daily, former occasional, never","",,"","v_067","d_00479","","" +"SMKDSTY_cat5","SMKDSTY_cat5_NA::b","cat","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY","ICES confirmed","cat","NA::b",5,"missing","missing","","[97,99]","don't know (97); refusal (98); not stated (99)","Smoking status","Type of smoker: daily, occasional, former daily, former occasional, never","",,"","v_067","d_00480","","" +"SMKDSTY_cat5","SMKDSTY_cat5_NA::b","cat","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY","ICES confirmed","cat","NA::b",5,"missing","missing","","else","else","Smoking status","Type of smoker: daily, occasional, former daily, former occasional, never","",,"","v_067","d_00481","","" +"SMKG01C_A","SMKG01C_A_cat10_1","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","1",10,"5 To 11 Years","age smoked first whole cigarette (5 to 11)","years","1","5 To 11 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00482","","" +"SMKG01C_A","SMKG01C_A_cat10_2","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","2",10,"12 To 14 Years","age smoked first whole cigarette (12 to 14)","years","2","12 To 14 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00483","","" +"SMKG01C_A","SMKG01C_A_cat10_3","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","3",10,"15 To 19 Years","age smoked first whole cigarette (18 to 19)","years","3","15 To 19 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00484","","" +"SMKG01C_A","SMKG01C_A_cat10_4","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","4",10,"20 To 24 Years","age smoked first whole cigarette (20 to 24)","years","4","20 To 24 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00485","","" +"SMKG01C_A","SMKG01C_A_cat10_5","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","5",10,"25 To 29 Years","age smoked first whole cigarette (25 to 29)","years","5","25 To 29 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00486","","" +"SMKG01C_A","SMKG01C_A_cat10_6","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","6",10,"30 To 34 Years","age smoked first whole cigarette (30 to 34)","years","6","30 To 34 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00487","","" +"SMKG01C_A","SMKG01C_A_cat10_7","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","7",10,"35 To 39 Years","age smoked first whole cigarette (35 to 39)","years","7","35 To 39 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00488","","" +"SMKG01C_A","SMKG01C_A_cat10_8","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","8",10,"40 To 44 Years","age smoked first whole cigarette (40 to 44)","years","8","40 To 44 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00489","","" +"SMKG01C_A","SMKG01C_A_cat10_9","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","9",10,"45 To 49 Years","age smoked first whole cigarette (45 to 49)","years","9","45 To 49 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00490","","" +"SMKG01C_A","SMKG01C_A_cat10_10","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","10",10,"50 Years or more","age smoked first whole cigarette (50 plus)","years","10","50 Years or more","agec1","Age smoked first cigarette","",,"","v_068","d_00491","","" +"SMKG01C_A","SMKG01C_A_cat10_NA::a","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","NA::a",10,"not applicable","not applicable","years","96","not applicable","agec1","Age smoked first cigarette","",,"","v_068","d_00492","","" +"SMKG01C_A","SMKG01C_A_cat10_NA::b","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","NA::b",10,"missing","missing","years","[97,99]","don't know (97); refusal (98); not stated (99)","agec1","Age smoked first cigarette","",,"","v_068","d_00493","","" +"SMKG01C_A","SMKG01C_A_cat10_NA::b","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C","ICES altered","cat","NA::b",10,"missing","missing","years","else","else","agec1","Age smoked first cigarette","",,"","v_068","d_00494","","" +"SMKG01C_A","SMKG01C_A_cat10_1","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","1",10,"5 To 11 Years","age smoked first whole cigarette (5 to 11)","years","[5,12)","5 To 11 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00495","","" +"SMKG01C_A","SMKG01C_A_cat10_2","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","2",10,"12 To 14 Years","age smoked first whole cigarette (12 to 14)","years","[12,15)","12 To 14 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00496","","" +"SMKG01C_A","SMKG01C_A_cat10_3","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","3",10,"15 To 19 Years","age smoked first whole cigarette (18 to 19)","years","[15,20)","15 To 19 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00497","","" +"SMKG01C_A","SMKG01C_A_cat10_4","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","4",10,"20 To 24 Years","age smoked first whole cigarette (20 to 24)","years","[20,25)","20 To 24 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00498","","" +"SMKG01C_A","SMKG01C_A_cat10_5","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","5",10,"25 To 29 Years","age smoked first whole cigarette (25 to 29)","years","[25,30)","25 To 29 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00499","","" +"SMKG01C_A","SMKG01C_A_cat10_6","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","6",10,"30 To 34 Years","age smoked first whole cigarette (30 to 34)","years","[30,35)","30 To 34 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00500","","" +"SMKG01C_A","SMKG01C_A_cat10_7","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","7",10,"35 To 39 Years","age smoked first whole cigarette (35 to 39)","years","[35,40)","35 To 39 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00501","","" +"SMKG01C_A","SMKG01C_A_cat10_8","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","8",10,"40 To 44 Years","age smoked first whole cigarette (40 to 44)","years","[40,45)","40 To 44 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00502","","" +"SMKG01C_A","SMKG01C_A_cat10_9","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","9",10,"45 To 49 Years","age smoked first whole cigarette (45 to 49)","years","[45,50)","45 To 49 Years","agec1","Age smoked first cigarette","",,"","v_068","d_00503","","" +"SMKG01C_A","SMKG01C_A_cat10_10","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","10",10,"50 Years or more","age smoked first whole cigarette (50 plus)","years","[50,80]","50 Years or more","agec1","Age smoked first cigarette","",,"","v_068","d_00504","","" +"SMKG01C_A","SMKG01C_A_cat10_NA::a","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","NA::a",10,"not applicable","not applicable","years","996","not applicable","agec1","Age smoked first cigarette","",,"","v_068","d_00505","","" +"SMKG01C_A","SMKG01C_A_cat10_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","NA::b",10,"missing","missing","years","[997,999]","don't know (997); refusal (998); not stated (999)","agec1","Age smoked first cigarette","",,"","v_068","d_00506","","" +"SMKG01C_A","SMKG01C_A_cat10_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]","ICES altered","cont","NA::b",10,"missing","missing","years","else","else","agec1","Age smoked first cigarette","",,"","v_068","d_00507","","" +"SMKG01C_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]","ICES altered","cont","copy",,"agec1","agec1","years","[5,80]","agec1","agec1","Age smoked first cigarette","",,"","v_069","d_00508","","" +"SMKG01C_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]","ICES altered","cont","NA::a",,"not applicable","not applicable","years","996","not applicable","agec1","Age smoked first cigarette","",,"","v_069","d_00509","","" +"SMKG01C_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]","ICES altered","cont","NA::b",,"missing","missing","years","[997,999]","don't know (997); refusal (998); not stated (999)","agec1","Age smoked first cigarette","",,"","v_069","d_00510","","" +"SMKG01C_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]","ICES altered","cont","NA::b",,"missing","missing","years","else","else","agec1","Age smoked first cigarette","",,"","v_069","d_00511","","" +"SMKG09C","SMKG09C_cat3_1","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]","ICES altered","cat","1",3,"3 to 5 years","3 to 5 years","years","[3,6)","3 to 5 years","stpdy","Years since stopped smoking daily - former daily","",,"","v_070","d_00512","","" +"SMKG09C","SMKG09C_cat3_2","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]","ICES altered","cat","2",3,"6 to 10 years","6 to 10 years","years","[6,11)","6 to 10 years","stpdy","Years since stopped smoking daily - former daily","",,"","v_070","d_00513","","" +"SMKG09C","SMKG09C_cat3_3","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]","ICES altered","cat","3",3,"11+ years","11 or more years","years","[11,82]","11 or more years","stpdy","Years since stopped smoking daily - former daily","",,"","v_070","d_00514","","" +"SMKG09C","SMKG09C_cat3_NA::a","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]","ICES altered","cat","NA::a",3,"not applicable","not applicable","years","996","not applicable","stpdy","Years since stopped smoking daily - former daily","",,"","v_070","d_00515","","" +"SMKG09C","SMKG09C_cat3_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]","ICES altered","cat","NA::b",3,"missing","missing","years","[997,999]","don't know (997); refusal (998); not stated (999)","stpdy","Years since stopped smoking daily - former daily","",,"","v_070","d_00516","","" +"SMKG09C","SMKG09C_cat3_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]","ICES altered","cat","NA::b",3,"missing","missing","years","else","else","stpdy","Years since stopped smoking daily - former daily","",,"","v_070","d_00517","","" +"SMKG203_A","SMKG203_A_cat10_1","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","1",10,"5 To 11 Years","age (5 to 11) started smoking daily - daily smoker","years","1","5 To 11 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00518","","" +"SMKG203_A","SMKG203_A_cat10_2","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","2",10,"12 To 14 Years","age (12 to 14) started smoking daily - daily smoker","years","2","12 To 14 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00519","","" +"SMKG203_A","SMKG203_A_cat10_3","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","3",10,"15 to 19 Years","age (15 to 19) started smoking daily - daily smoker","years","3","15 to 19 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00520","","" +"SMKG203_A","SMKG203_A_cat10_4","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","4",10,"20 To 24 Years","age (20 to 24) started smoking daily - daily smoker","years","4","20 To 24 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00521","","" +"SMKG203_A","SMKG203_A_cat10_5","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","5",10,"25 To 29 Years","age (25 to 29) started smoking daily - daily smoker","years","5","25 To 29 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00522","","" +"SMKG203_A","SMKG203_A_cat10_6","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","6",10,"30 To 34 Years","age (30 to 34) started smoking daily - daily smoker","years","6","30 To 34 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00523","","" +"SMKG203_A","SMKG203_A_cat10_7","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","7",10,"35 To 39 Years","age (35 to 39) started smoking daily - daily smoker","years","7","35 To 39 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00524","","" +"SMKG203_A","SMKG203_A_cat10_8","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","8",10,"40 To 44 Years","age (40 to 44) started smoking daily - daily smoker","years","8","40 To 44 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00525","","" +"SMKG203_A","SMKG203_A_cat10_9","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","9",10,"45 To 49 Years","age (45 to 49) started smoking daily - daily smoker","years","9","45 To 49 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00526","","" +"SMKG203_A","SMKG203_A_cat10_10","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","10",10,"50 Years or more","age (50 or more) started smoking daily - daily smoker","years","10","50 Years or more","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00527","","" +"SMKG203_A","SMKG203_A_cat10_NA::a","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","NA::a",10,"not applicable","not applicable","years","96","not applicable","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00528","","" +"SMKG203_A","SMKG203_A_cat10_NA::b","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","NA::b",10,"missing","missing","years","[97,99]","don't know (97); refusal (98); not stated (99)","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00529","","" +"SMKG203_A","SMKG203_A_cat10_NA::b","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203","ICES altered","cat","NA::b",10,"missing","missing","years","else","else","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00530","","" +"SMKG203_A","SMKG203_A_cat10_1","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","1",10,"5 To 11 Years","age (5 to 11) started smoking daily - daily smoker","years","[5,12)","5 To 11 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00531","","" +"SMKG203_A","SMKG203_A_cat10_2","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","2",10,"12 To 14 Years","age (12 to 14) started smoking daily - daily smoker","years","[12,15)","12 To 14 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00532","","" +"SMKG203_A","SMKG203_A_cat10_3","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","3",10,"15 to 19 Years","age (15 to 19) started smoking daily - daily smoker","years","[15,20)","15 to 19 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00533","","" +"SMKG203_A","SMKG203_A_cat10_4","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","4",10,"20 To 24 Years","age (20 to 24) started smoking daily - daily smoker","years","[20,25)","20 To 24 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00534","","" +"SMKG203_A","SMKG203_A_cat10_5","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","5",10,"25 To 29 Years","age (25 to 29) started smoking daily - daily smoker","years","[25,30)","25 To 29 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00535","","" +"SMKG203_A","SMKG203_A_cat10_6","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","6",10,"30 To 34 Years","age (30 to 34) started smoking daily - daily smoker","years","[30,35)","30 To 34 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00536","","" +"SMKG203_A","SMKG203_A_cat10_7","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","7",10,"35 To 39 Years","age (35 to 39) started smoking daily - daily smoker","years","[35,40)","35 To 39 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00537","","" +"SMKG203_A","SMKG203_A_cat10_8","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","8",10,"40 To 44 Years","age (40 to 44) started smoking daily - daily smoker","years","[40,45)","40 To 44 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00538","","" +"SMKG203_A","SMKG203_A_cat10_9","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","9",10,"45 To 49 Years","age (45 to 49) started smoking daily - daily smoker","years","[45,50)","45 To 49 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00539","","" +"SMKG203_A","SMKG203_A_cat10_10","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","10",10,"50 Years or more","age (50 or more) started smoking daily - daily smoker","years","[50,84]","50 Years or more","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00540","","" +"SMKG203_A","SMKG203_A_cat10_NA::a","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","NA::a",10,"not applicable","not applicable","years","996","not applicable","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00541","","" +"SMKG203_A","SMKG203_A_cat10_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","NA::b",10,"missing","missing","years","[997,999]","don't know (97); refusal (98); not stated (99)","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00542","","" +"SMKG203_A","SMKG203_A_cat10_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]","ICES altered","cont","NA::b",10,"missing","missing","years","else","else","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_071","d_00543","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","8",,"agecigd","converted categorical age (5 to 11) started smoking daily - daily smoker","years","1","5 To 11 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00544","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","13",,"agecigd","converted categorical age (12 to 14) started smoking daily - daily smoker","years","2","12 To 14 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00545","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","17",,"agecigd","converted categorical age (15 to 19) started smoking daily - daily smoker","years","3","15 to 19 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00546","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","22",,"agecigd","converted categorical age (20 to 24) started smoking daily - daily smoker","years","4","20 To 24 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00547","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","27",,"agecigd","converted categorical age (25 to 29) started smoking daily - daily smoker","years","5","25 To 29 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00548","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","32",,"agecigd","converted categorical age (30 to 34) started smoking daily - daily smoker","years","6","30 To 34 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00549","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","37",,"agecigd","converted categorical age (35 to 39) started smoking daily - daily smoker","years","7","35 To 39 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00550","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","42",,"agecigd","converted categorical age (40 to 44) started smoking daily - daily smoker","years","8","40 To 44 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00551","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","47",,"agecigd","converted categorical age (45 to 49) started smoking daily - daily smoker","years","9","45 To 49 Years","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00552","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","55",,"agecigd","converted categorical age (50 or more) started smoking daily - daily smoker","years","10","50 Years or more","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00553","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","NA::a",,"not applicable","not applicable","years","96","not applicable","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00554","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","NA::b",,"missing","missing","years","[97,99]","don't know (97); refusal (98); not stated (99)","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00555","","" +"SMKG203_cont","","cont","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ","ICES altered","cat","NA::b",,"missing","missing","years","else","else","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00556","","" +"SMKG203_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]","ICES altered","cont","copy",,"agecigd","agecigd","years","[5,84]","agecigd","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00557","","" +"SMKG203_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]","ICES altered","cont","NA::a",,"not applicable","not applicable","years","996","not applicable","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00558","","" +"SMKG203_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]","ICES altered","cont","NA::b",,"missing","missing","years","[997,999]","don't know (997); refusal (998); not stated (999)","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00559","","" +"SMKG203_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]","ICES altered","cont","NA::b",,"missing","missing","years","else","else","agecigd","Age started to smoke daily - daily smoker (G)","",,"","v_072","d_00560","","" +"SMKG207_A","SMKG207_A_cat10_1","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","1",10,"5 To 11 Years","age (5 to 11) started smoking daily - daily smoker","years","1","5 To 11 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00561","","" +"SMKG207_A","SMKG207_A_cat10_2","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","2",10,"12 To 14 Years","age (12 to 14) started smoking daily - daily smoker","years","2","12 To 14 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00562","","" +"SMKG207_A","SMKG207_A_cat10_3","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","3",10,"15 to 19 Years","age (15 to 19) started smoking daily - daily smoker","years","3","15 to 19 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00563","","" +"SMKG207_A","SMKG207_A_cat10_4","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","4",10,"20 To 24 Years","age (20 to 24) started smoking daily - daily smoker","years","4","20 To 24 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00564","","" +"SMKG207_A","SMKG207_A_cat10_5","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","5",10,"25 To 29 Years","age (25 to 29) started smoking daily - daily smoker","years","5","25 To 29 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00565","","" +"SMKG207_A","SMKG207_A_cat10_6","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","6",10,"30 To 34 Years","age (30 to 34) started smoking daily - daily smoker","years","6","30 To 34 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00566","","" +"SMKG207_A","SMKG207_A_cat10_7","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","7",10,"35 To 39 Years","age (35 to 39) started smoking daily - daily smoker","years","7","35 To 39 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00567","","" +"SMKG207_A","SMKG207_A_cat10_8","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","8",10,"40 To 44 Years","age (40 to 44) started smoking daily - daily smoker","years","8","40 To 44 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00568","","" +"SMKG207_A","SMKG207_A_cat10_9","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","9",10,"45 To 49 Years","age (45 to 49) started smoking daily - daily smoker","years","9","45 To 49 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00569","","" +"SMKG207_A","SMKG207_A_cat10_10","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","10",10,"50 Years or more","age (50 or more) started smoking daily - daily smoker","years","10","50 Years or more","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00570","","" +"SMKG207_A","SMKG207_A_cat10_NA::a","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","NA::a",10,"not applicable","not applicable","years","96","not applicable","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00571","","" +"SMKG207_A","SMKG207_A_cat10_NA::b","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","NA::b",10,"missing","missing","years","[97,99]","don't know (97); refusal (98); not stated (99)","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00572","","" +"SMKG207_A","SMKG207_A_cat10_NA::b","cat","cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207","ICES altered","cat","NA::b",10,"missing","missing","years","else","else","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00573","","" +"SMKG207_A","SMKG207_A_cat10_1","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","1",10,"5 To 11 Years","age (5 to 11) started smoking daily - daily smoker","years","[5,12)","5 To 11 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00574","","" +"SMKG207_A","SMKG207_A_cat10_2","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","2",10,"12 To 14 Years","age (12 to 14) started smoking daily - daily smoker","years","[12,15)","12 To 14 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00575","","" +"SMKG207_A","SMKG207_A_cat10_3","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","3",10,"15 to 19 Years","age (15 to 19) started smoking daily - daily smoker","years","[15,20)","15 To 19 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00576","","" +"SMKG207_A","SMKG207_A_cat10_4","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","4",10,"20 To 24 Years","age (20 to 24) started smoking daily - daily smoker","years","[20,25)","20 To 24 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00577","","" +"SMKG207_A","SMKG207_A_cat10_5","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","5",10,"25 To 29 Years","age (25 to 29) started smoking daily - daily smoker","years","[25,30)","25 To 29 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00578","","" +"SMKG207_A","SMKG207_A_cat10_6","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","6",10,"30 To 34 Years","age (30 to 34) started smoking daily - daily smoker","years","[30,35)","30 To 34 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00579","","" +"SMKG207_A","SMKG207_A_cat10_7","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","7",10,"35 To 39 Years","age (35 to 39) started smoking daily - daily smoker","years","[35,40)","35 To 39 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00580","","" +"SMKG207_A","SMKG207_A_cat10_8","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","8",10,"40 To 44 Years","age (40 to 44) started smoking daily - daily smoker","years","[40,45)","40 To 44 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00581","","" +"SMKG207_A","SMKG207_A_cat10_9","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","9",10,"45 To 49 Years","age (45 to 49) started smoking daily - daily smoker","years","[45,50)","45 To 49 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00582","","" +"SMKG207_A","SMKG207_A_cat10_10","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","10",10,"50 Years or more","age (50 or more) started smoking daily - daily smoker","years","[50,80]","50 Years or more","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00583","","" +"SMKG207_A","SMKG207_A_cat10_NA::a","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","NA::a",10,"not applicable","not applicable","years","996","not applicable","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00584","","" +"SMKG207_A","SMKG207_A_cat10_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","NA::b",10,"missing","missing","years","[997,999]","don't know (997); refusal (998); not stated (999)","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00585","","" +"SMKG207_A","SMKG207_A_cat10_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","NA::b",10,"missing","missing","years","else","else","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_073","d_00586","","" +"SMKG207_B","SMKG207_B_cat11_1","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","1",11,"5 To 11 Years","age (5 to 11) started smoking daily - former daily smoker","years","1","5 To 11 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00587","","" +"SMKG207_B","SMKG207_B_cat11_2","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","2",11,"12 To 14 Years","age (12 to 14) started smoking daily - former daily smoker","years","2","12 To 14 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00588","","" +"SMKG207_B","SMKG207_B_cat11_3","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","3",11,"15 To 17 Years","age (15 to 17) started smoking daily - former daily smoker","years","3","15 To 17 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00589","","" +"SMKG207_B","SMKG207_B_cat11_4","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","4",11,"18 To 19 Years","age (18 to 19) started smoking daily - former daily smoker","years","4","18 To 19 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00590","","" +"SMKG207_B","SMKG207_B_cat11_5","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","5",11,"20 To 24 Years","age (20 to 24) started smoking daily - former daily smoker","years","5","20 To 24 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00591","","" +"SMKG207_B","SMKG207_B_cat11_6","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","6",11,"25 To 29 Years","age (25 to 29) started smoking daily - former daily smoker","years","6","25 To 29 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00592","","" +"SMKG207_B","SMKG207_B_cat11_7","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","7",11,"30 To 34 Years","age (30 to 34) started smoking daily - former daily smoker","years","7","30 To 34 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00593","","" +"SMKG207_B","SMKG207_B_cat11_8","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","8",11,"35 To 39 Years","age (35 to 39) started smoking daily - former daily smoker","years","8","35 To 39 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00594","","" +"SMKG207_B","SMKG207_B_cat11_9","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","9",11,"40 To 44 Years","age (40 to 44) started smoking daily - former daily smoker","years","9","40 To 44 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00595","","" +"SMKG207_B","SMKG207_B_cat11_10","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","10",11,"45 To 49 Years","age (45 to 49) started smoking daily - former daily smoker","years","10","45 To 49 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00596","","" +"SMKG207_B","SMKG207_B_cat11_11","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","11",11,"50 Years or more","age (50 plus) started smoking daily - former daily smoker","years","11","50 Years or more","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00597","","" +"SMKG207_B","SMKG207_B_cat11_NA::a","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","NA::a",11,"not applicable","not applicable","years","96","not applicable","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00598","","" +"SMKG207_B","SMKG207_B_cat11_NA::b","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","NA::b",11,"missing","missing","years","[97,99]","don't know (97); refusal (98); not stated (99)","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00599","","" +"SMKG207_B","SMKG207_B_cat11_NA::b","cat","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","NA::b",11,"missing","missing","years","else","else","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00600","","" +"SMKG207_B","SMKG207_B_cat11_1","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","1",11,"5 To 11 Years","age (5 to 11) started smoking daily - former daily smoker","years","[5,12)","5 To 11 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00601","","" +"SMKG207_B","SMKG207_B_cat11_2","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","2",11,"12 To 14 Years","age (12 to 14) started smoking daily - former daily smoker","years","[12,15)","12 To 14 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00602","","" +"SMKG207_B","SMKG207_B_cat11_3","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","3",11,"15 To 17 Years","age (15 to 17) started smoking daily - former daily smoker","years","[15,18)","15 To 17 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00603","","" +"SMKG207_B","SMKG207_B_cat11_4","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","4",11,"18 To 19 Years","age (18 to 19) started smoking daily - former daily smoker","years","[18,20)","18 To 19 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00604","","" +"SMKG207_B","SMKG207_B_cat11_5","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","5",11,"20 To 24 Years","age (20 to 24) started smoking daily - former daily smoker","years","[20,25)","20 To 24 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00605","","" +"SMKG207_B","SMKG207_B_cat11_6","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","6",11,"25 To 29 Years","age (25 to 29) started smoking daily - former daily smoker","years","[25,30)","25 To 29 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00606","","" +"SMKG207_B","SMKG207_B_cat11_7","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","7",11,"30 To 34 Years","age (30 to 34) started smoking daily - former daily smoker","years","[30,35)","30 To 34 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00607","","" +"SMKG207_B","SMKG207_B_cat11_8","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","8",11,"35 To 39 Years","age (35 to 39) started smoking daily - former daily smoker","years","[35,40)","35 To 39 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00608","","" +"SMKG207_B","SMKG207_B_cat11_9","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","9",11,"40 To 44 Years","age (40 to 44) started smoking daily - former daily smoker","years","[40,45)","40 To 44 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00609","","" +"SMKG207_B","SMKG207_B_cat11_10","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","10",11,"45 To 49 Years","age (45 to 49) started smoking daily - former daily smoker","years","[45,50)","45 To 49 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00610","","" +"SMKG207_B","SMKG207_B_cat11_11","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","11",11,"50 Years or more","age (50 plus) started smoking daily - former daily smoker","years","[50,80]","50 Years or more","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00611","","" +"SMKG207_B","SMKG207_B_cat11_NA::a","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","NA::a",11,"not applicable","not applicable","years","996","not applicable","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00612","","" +"SMKG207_B","SMKG207_B_cat11_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","NA::b",11,"missing","missing","years","[997,999]","don't know (997); refusal (998); not stated (999)","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00613","","" +"SMKG207_B","SMKG207_B_cat11_NA::b","cat","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cat","NA::b",11,"missing","missing","years","else","else","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_074","d_00614","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","8",,"agecigd","converted categorical age (5 to 11) started smoking daily - daily smoker","years","1","5 To 11 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00615","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","13",,"agecigd","converted categorical age (12 to 14) started smoking daily - daily smoker","years","2","12 To 14 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00616","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","17",,"agecigd","converted categorical age (15 to 19) started smoking daily - daily smoker","years","3","15 to 19 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00617","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","22",,"agecigd","converted categorical age (20 to 24) started smoking daily - daily smoker","years","4","20 To 24 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00618","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","27",,"agecigd","converted categorical age (25 to 29) started smoking daily - daily smoker","years","5","25 To 29 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00619","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","32",,"agecigd","converted categorical age (30 to 34) started smoking daily - daily smoker","years","6","30 To 34 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00620","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","37",,"agecigd","converted categorical age (35 to 39) started smoking daily - daily smoker","years","7","35 To 39 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00621","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","42",,"agecigd","converted categorical age (40 to 44) started smoking daily - daily smoker","years","8","40 To 44 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00622","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","47",,"agecigd","converted categorical age (45 to 49) started smoking daily - daily smoker","years","9","45 To 49 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00623","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","55",,"agecigd","converted categorical age (50 or more) started smoking daily - daily smoker","years","10","50 Years or more","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00624","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","NA::a",,"not applicable","not applicable","years","96","not applicable","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00625","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","NA::b",,"missing","missing","years","[97,99]","don't know (97); refusal (98); not stated (99)","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00626","","" +"SMKG207_cont","","cont","cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207","","cat","NA::b",,"missing","missing","years","else","else","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00627","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","8",,"agecigd","converted categorical age (5 to 11) started smoking daily - daily smoker","years","1","5 To 11 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00628","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","13",,"agecigd","converted categorical age (12 to 14) started smoking daily - daily smoker","years","2","12 To 14 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00629","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","16",,"agecigd","converted categorical age (15 to 17) started smoking daily - daily smoker","years","3","15 To 17 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00630","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","18.5",,"agecigd","converted categorical age (18 to 19) started smoking daily - daily smoker","years","4","18 To 19 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00631","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","22",,"agecigd","converted categorical age (20 to 24) started smoking daily - daily smoker","years","5","20 To 24 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00632","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","27",,"agecigd","converted categorical age (25 to 29) started smoking daily - daily smoker","years","6","25 To 29 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00633","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","32",,"agecigd","converted categorical age (30 to 34) started smoking daily - daily smoker","years","7","30 To 34 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00634","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","37",,"agecigd","converted categorical age (35 to 39) started smoking daily - daily smoker","years","8","35 To 39 Years","agecigfd","Age started to smoke daily - former daily smoker","Missing 2001 Data",,"","v_075","d_00635","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","42",,"agecigd","converted categorical age (40 to 44) started smoking daily - daily smoker","years","9","40 To 44 Years","agecigfd","Age started to smoke daily - former daily smoker","Missing 2001 Data",,"","v_075","d_00636","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","47",,"agecigd","converted categorical age (45 to 49) started smoking daily - daily smoker","years","10","45 To 49 Years","agecigfd","Age started to smoke daily - former daily smoker","Missing 2001 Data",,"","v_075","d_00637","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","55",,"agecigd","converted categorical age (50 plus) started smoking daily - daily smoker","years","11","50 Years or more","agecigfd","Age started to smoke daily - former daily smoker","Missing 2001 Data",,"","v_075","d_00638","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","NA::a",,"not applicable","not applicable","years","96","not applicable","agecigfd","Age started to smoke daily - former daily smoker","Missing 2001 Data",,"","v_075","d_00639","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","NA::b",,"missing","missing","years","[97,99]","don't know (97); refusal (98); not stated (99)","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00640","","" +"SMKG207_cont","","cont","cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]","","cat","NA::b",,"missing","missing","years","else","else","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00641","","" +"SMKG207_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","copy",,"agecigd","agecigd","years","[5,80]","agecigfd","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00642","","" +"SMKG207_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","NA::a",,"not applicable","not applicable","years","996","not applicable","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00643","","" +"SMKG207_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","NA::b",,"missing","missing","years","[997,999]","don't know (997); refusal (998); not stated (999)","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00644","","" +"SMKG207_cont","","cont","cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]","ICES altered","cont","NA::b",,"missing","missing","years","else","else","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00645","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","Func::SMKG207_fun",,"","","","","","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00646","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","8",,"agecigd","converted categorical age (5 to 11) started smoking daily - daily smoker","years","","5 To 11 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00647","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","13",,"agecigd","converted categorical age (12 to 14) started smoking daily - daily smoker","years","","12 To 14 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00648","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","16",,"agecigd","converted categorical age (15 to 17) started smoking daily - daily smoker","years","","15 To 17 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00649","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","18.5",,"agecigd","converted categorical age (18 to 19) started smoking daily - daily smoker","years","","18 To 19 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00650","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","22",,"agecigd","converted categorical age (20 to 24) started smoking daily - daily smoker","years","","20 To 24 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00651","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","27",,"agecigd","converted categorical age (25 to 29) started smoking daily - daily smoker","years","","25 To 29 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00652","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","32",,"agecigd","converted categorical age (30 to 34) started smoking daily - daily smoker","years","","30 To 34 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00653","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","37",,"agecigd","converted categorical age (35 to 39) started smoking daily - daily smoker","years","","35 To 39 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00654","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","42",,"agecigd","converted categorical age (40 to 44) started smoking daily - daily smoker","years","","40 To 44 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00655","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","47",,"agecigd","converted categorical age (45 to 49) started smoking daily - daily smoker","years","","45 To 49 Years","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00656","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","55",,"agecigd","converted categorical age (50 plus) started smoking daily - daily smoker","years","","50 Years or more","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00657","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","NA::a",,"not applicable","not applicable","years","","not applicable","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00658","","" +"SMKG207_cont","","cont","cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]","","","NA::b",,"missing","missing","years","","missing","agecigfd","Age started to smoke daily - former daily smoker","",,"","v_075","d_00659","","" +"birth_date","","cont","ices","[birth_date]","","cont","date_start",,"Birth date","Date of birth","YYYY-MM-DD","[31OCT1959, 31JAN2000]","","","","Cohort age 40-65 at baseline",,"","v_076","d_00660","1959-10-31","" +"birth_date","","cont","ices","[birth_date]","","cont","date_end",,"Birth date","Date of birth","YYYY-MM-DD","[31OCT1959, 31JAN2000]","","","","",,"","v_076","d_00661","","2000-01-31" +"interview_date","","cont","ices","[interview_date]","","cont","date_start",,"Interview date","Baseline interview date","YYYY-MM-DD","[01JAN2001, 31DEC2005]","","","","Accrual period (5 years)",,"","v_077","d_00662","2001-01-01","" +"interview_date","","cont","ices","[interview_date]","","cont","date_end",,"Interview date","Baseline interview date","YYYY-MM-DD","[01JAN2001, 31DEC2005]","","","","",,"","v_077","d_00663","","2005-12-31" +"death_date","","cont","ices","[death_date]","","cont","date_start",,"Death date","Date of death","YYYY-MM-DD","[01JAN2001, 31MAR2017]","","","","Follow-up through 2017",,"","v_078","d_00664","2001-01-01","" +"death_date","","cont","ices","[death_date]","","cont","date_end",,"Death date","Date of death","YYYY-MM-DD","[01JAN2001, 31MAR2017]","","","","",,"","v_078","d_00665","","2017-03-31" +"dementia_onset_date","","cont","ices","[dementia_onset_date]","","cont","date_start",,"Dementia diagnosis","Date of dementia diagnosis","YYYY-MM-DD","[01JAN2001, 31MAR2017]","","","","Follow-up through 2017",,"","v_079","d_00666","2001-01-01","" +"dementia_onset_date","","cont","ices","[dementia_onset_date]","","cont","date_end",,"Dementia diagnosis","Date of dementia diagnosis","YYYY-MM-DD","[01JAN2001, 31MAR2017]","","","","",,"","v_079","d_00667","","2017-03-31" +"censor_date","","cont","ices","[censor_date]","","cont","date_start",,"Censor date","Administrative censoring date","YYYY-MM-DD","[01JAN2001, 31MAR2017]","","","","Administrative censoring",,"","v_080","d_00668","2001-01-01","" +"censor_date","","cont","ices","[censor_date]","","cont","date_end",,"Censor date","Administrative censoring date","YYYY-MM-DD","[01JAN2001, 31MAR2017]","","","","",,"","v_080","d_00669","","2017-03-31" diff --git a/inst/extdata/demport/variable_details_DemPoRT.csv.bak b/inst/extdata/demport/variable_details_DemPoRT.csv.bak new file mode 100644 index 0000000..bbfa198 --- /dev/null +++ b/inst/extdata/demport/variable_details_DemPoRT.csv.bak @@ -0,0 +1,660 @@ +variable,dummyVariable,typeEnd,databaseStart,variableStart,ICES confirmation,typeStart,recEnd,numValidCat,catLabel,catLabelLong,units,recStart,catStartLabel,variableStartShortLabel,variableStartLabel,notes,, +ADL_01,ADL_01_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help preparing meals,Needs help - preparing meals,,, +ADL_01,ADL_01_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help preparing meals,Needs help - preparing meals,,, +ADL_01,ADL_01_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help preparing meals,Needs help - preparing meals,,, +ADL_01,ADL_01_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help preparing meals,Needs help - preparing meals,,, +ADL_01,ADL_01_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help preparing meals,Needs help - preparing meals,,, +ADL_02,ADL_02_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help appointments/errands,Needs help - getting to appointments/errands,"In the 2001 CCHS, respondents were asked, ""Because of any condition or health problem, do you need the help of another person in shopping for groceries or other necessities?""",, +ADL_02,ADL_02_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help appointments/errands,Needs help - getting to appointments/errands,,, +ADL_02,ADL_02_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help appointments/errands,Needs help - getting to appointments/errands,,, +ADL_02,ADL_02_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help appointments/errands,Needs help - getting to appointments/errands,,, +ADL_02,ADL_02_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help appointments/errands,Needs help - getting to appointments/errands,,, +ADL_03,ADL_03_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help housework,Needs help - doing housework,,, +ADL_03,ADL_03_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help housework,Needs help - doing housework,,, +ADL_03,ADL_03_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help housework,Needs help - doing housework,,, +ADL_03,ADL_03_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help housework,Needs help - doing housework,,, +ADL_03,ADL_03_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help housework,Needs help - doing housework,,, +ADL_04,ADL_04_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help personal care,Needs help - personal care,,, +ADL_04,ADL_04_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help personal care,Needs help - personal care,,, +ADL_04,ADL_04_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help personal care,Needs help - personal care,,, +ADL_04,ADL_04_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help personal care,Needs help - personal care,,, +ADL_04,ADL_04_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help personal care,Needs help - personal care,,, +ADL_05,ADL_05_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help move inside house,Needs help - moving about inside house,,, +ADL_05,ADL_05_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help move inside house,Needs help - moving about inside house,,, +ADL_05,ADL_05_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help move inside house,Needs help - moving about inside house,,, +ADL_05,ADL_05_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help move inside house,Needs help - moving about inside house,,, +ADL_05,ADL_05_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help move inside house,Needs help - moving about inside house,,, +ADL_06,ADL_06_cat2_1,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, +ADL_06,ADL_06_cat2_2,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, +ADL_06,ADL_06_cat2_NA::a,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, +ADL_06,ADL_06_cat2_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, +ADL_06,ADL_06_cat2_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help personal finances,Needs help - looking after finances,Only available for 2003 onwards,, +ADL_07,ADL_07_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Help heavy household chores,Needs help - heavy household chores,,, +ADL_07,ADL_07_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,2,2,No,No,N/A,2,No,Help heavy household chores,Needs help - heavy household chores,,, +ADL_07,ADL_07_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help heavy household chores,Needs help - heavy household chores,,, +ADL_07,ADL_07_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Help heavy household chores,Needs help - heavy household chores,,, +ADL_07,ADL_07_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Help heavy household chores,Needs help - heavy household chores,,, +ADL_score_6,ADL_score_6_catN/A_Func::adl_score_6_fun,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,Func::adl_score_6_fun,N/A,N/A,N/A,N/A,N/A,N/A,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ADL_score_6,ADL_score_6_cat7_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,0,7,Needs help with 0 tasks,Needs help with 0 tasks,N/A,N/A,Needs help with 0 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ADL_score_6,ADL_score_6_cat7_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,1,7,Needs help with at least 1 task,Needs help with at least 1 task,N/A,N/A,Needs help with at least 1 task,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ADL_score_6,ADL_score_6_cat7_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,2,7,Needs help with at least 2 tasks,Needs help with at least 2 tasks,N/A,N/A,Needs help with at least 2 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ADL_score_6,ADL_score_6_cat7_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,3,7,Needs help with at least 3 tasks,Needs help with at least 3 tasks,N/A,N/A,Needs help with at least 3 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ADL_score_6,ADL_score_6_cat7_5,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,4,7,Needs help with at least 4 tasks,Needs help with at least 4 tasks,N/A,N/A,Needs help with at least 4 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ADL_score_6,ADL_score_6_cat7_6,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,5,7,Needs help with at least 5 tasks,Needs help with at least 5 tasks,N/A,N/A,Needs help with at least 5 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ADL_score_6,ADL_score_6_cat7_7,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,6,7,Needs help with at least 6 tasks,Needs help with at least 6 tasks,N/A,N/A,Needs help with at least 6 tasks,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ADL_score_6,ADL_score_6_cat7_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,NA::a,7,not applicable,not applicable,N/A,N/A,not applicable,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ADL_score_6,ADL_score_6_cat7_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",ICES specifc,N/A,NA::b,7,missing,missing,N/A,N/A,missing,ADL score ,"Derived using the ADL variables used in DemPoRT from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",,, +ALCDTTM,ALCDTTM_cat3_1,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,1,3,Regular,Regular Drinker,N/A,1,Regular Drinker,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_2,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,2,3,Occasional,Occasional Drinker,N/A,2,Occasional drinker,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_3,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,3,3,No drink in last 12 months,No drink in last 12 months,N/A,3,No drink in the last 12 months,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_NA::a,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_NA::b,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_NA::b,cat,"cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,1,3,Regular,Regular Drinker,N/A,1,Regular drinker,Drinker type (last 12 months),Type of drinker (12 months),"In CCHS cycles 2001, 2003, and 2005, ALCDTTM was derived from ALCDTYP in which former and never drinkers were combined into ""No drink in the last 12 months""",, +ALCDTTM,ALCDTTM_cat3_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,2,3,Occasional,Occasional Drinker,N/A,2,Occasional drinker,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,3,3,No drink in last 12 months,No drink in last 12 months,N/A,3,Former drinker,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,3,3,No drink in last 12 months,No drink in last 12 months,N/A,4,Never drank,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTTM,ALCDTTM_cat3_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Drinker type (last 12 months),Type of drinker (12 months),,, +ALCDTYP_A,ALCDTYP_cat5_1,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,1,2,Former ,Former drinker,N/A,3,Former drinker,Drinker type,Type of drinker - (D),,, +ALCDTYP_A,ALCDTYP_cat5_2,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,2,2,Other,Other drinker,N/A,"[1,2]",Other drinker,Drinker type,Type of drinker - (D),"""Other"" drinker type derived from combining ""Regular"", ""Occasional"" and ""Never"" drink categories ",, +ALCDTYP_A,ALCDTYP_cat5_2,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,2,2,Other,Other drinker,N/A,[4],Other drinker,Drinker type,Type of drinker - (D),"""Other"" drinker type derived from combining ""Regular"", ""Occasional"" and ""Never"" drink categories ",, +ALCDTYP_A,ALCDTYP_cat5_NA::a,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Drinker type,Type of drinker - (D),,, +ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Drinker type,Type of drinker - (D),,, +ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP",ICES specifc,cat,NA::b,2,missing,missing,N/A,else,else,Drinker type,Type of drinker - (D),,, +ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,1,2,Former,Former drinker,N/A,3,Former drinker,Drinker type,Type of drinker - (D),,, +ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,2,2,Other,Other drinker,N/A,"[1,2]",Other drinker,Drinker type,Type of drinker - (D),"""Other"" drinker type derived from combining ""Regular"" and ""Occasional"" drinker categories ",, +ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Drinker type,Type of drinker - (D),,, +ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Drinker type,Type of drinker - (D),,, +ALCDTYP_A,ALCDTYP_cat5_NA::b,cat,"cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",ICES specifc,cat,NA::b,2,missing,missing,N/A,else,else,Drinker type,Type of drinker - (D),,, +ALWDWKY,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]",ICES confirmed,cont,copy,N/A,drinks/week,drinks/week,drinks/week,"[0,449]",drinks per week,Drinks last week,Weekly consumption of alcohol,shown as categorical variable in CCHS 2014 cycle,, +ALWDWKY,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,drinks/week,996,not applicable (996),Drinks last week,Weekly consumption of alcohol,,, +ALWDWKY,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]",ICES confirmed,cont,NA::b,N/A,missing,missing,drinks/week,"[997,999]",don't know (997); refusal (998); not stated (999),Drinks last week,Weekly consumption of alcohol,,, +ALWDWKY,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]",ICES confirmed,cont,NA::b,N/A,missing,missing,drinks/week,else,else,Drinks last week,Weekly consumption of alcohol,,, +CCC_071,CCC_071_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,1,2,Hypertension,Hypertension,N/A,1,Yes (Do you have high blood pressure?),Hypertension,Do you have high blood pressure?,,, +CCC_071,CCC_071_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,2,2,No Hypertension,No Hypertension,N/A,2,No (Do you have high blood pressure?),Hypertension,Do you have high blood pressure?,,, +CCC_071,CCC_071_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Hypertension,Do you have high blood pressure?,,, +CCC_071,CCC_071_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Hypertension,Do you have high blood pressure?,,, +CCC_071,CCC_071_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Hypertension,Do you have high blood pressure?,,, +CCC_091,CCC_091_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,1,2,COPD/emphysema/bronchitis,COPD/emphysema/bronchitis,N/A,1,"Yes (Do you have COPD(eg bronchitis,emphysema)?)",COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, +CCC_091,CCC_091_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,2,2,No COPD/emphysema/bronchitis,No COPD/emphysema/bronchitis,N/A,2,"No (Do you have COPD(eg bronchitis,emphysema)?)",COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, +CCC_091,CCC_091_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, +CCC_091,CCC_091_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, +CCC_091,CCC_091_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",,, +CCC_101,CCC_101_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,1,2,Diabetes,Diabetes,N/A,1,Yes (Do you have diabetes?),Diabetes,Do you have diabetes?,,, +CCC_101,CCC_101_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,2,2,No Diabetes,No Diabetes,N/A,2,No (Do you have diabetes?),Diabetes,Do you have diabetes?,,, +CCC_101,CCC_101_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Diabetes,Do you have diabetes?,,, +CCC_101,CCC_101_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Diabetes,Do you have diabetes?,,, +CCC_101,CCC_101_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Diabetes,Do you have diabetes?,,, +CCC_111,CCC_111_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,1,2,Epilepsy,Epilepsy,N/A,1,Yes (Do you have epilepsy?),Epilepsy,Do you have epilepsy?,,, +CCC_111,CCC_111_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,2,2,No Epilepsy,No Epilepsy,N/A,2,No (Do you have epilepsy?),Epilepsy,Do you have epilepsy?,,, +CCC_111,CCC_111_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Epilepsy,Do you have epilepsy?,,, +CCC_111,CCC_111_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Epilepsy,Do you have epilepsy?,,, +CCC_111,CCC_111_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Epilepsy,Do you have epilepsy?,,, +CCC_121,CCC_121_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,1,2,Heart Disease,Heart Disease,N/A,1,Yes (Do you have heart disease?),Heart Disease,Do you have heart disease?,,, +CCC_121,CCC_121_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,2,2,No Heart Disease,No Heart Disease,N/A,2,No (Do you have heart disease?),Heart Disease,Do you have heart disease?,,, +CCC_121,CCC_121_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Heart Disease,Do you have heart disease?,,, +CCC_121,CCC_121_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Heart Disease,Do you have heart disease?,,, +CCC_121,CCC_121_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Heart Disease,Do you have heart disease?,,, +CCC_151,CCC_151_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,1,2,Stroke,Stroke,N/A,1,Yes (Do you suffer from the effects of stroke?),Stroke,Do you suffer from effects of stroke?,,, +CCC_151,CCC_151_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,2,2,No Stroke,No Stroke,N/A,2,No (Do you suffer from the effects of stroke?),Stroke,Do you suffer from effects of stroke?,,, +CCC_151,CCC_151_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Stroke,Do you suffer from effects of stroke?,,, +CCC_151,CCC_151_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Stroke,Do you suffer from effects of stroke?,,, +CCC_151,CCC_151_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Stroke,Do you suffer from effects of stroke?,,, +CCC_280,CCC_280_cat2_1,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,1,2,Has a mood disorder,Has a mood disorder,N/A,1,Yes (Do you have a mood disorder?),Mood disorder,Do you have a mood disorder?,,, +CCC_280,CCC_280_cat2_2,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,2,2,Does not have a mood disorder,Does not have a mood disorder,N/A,2,No (Do you have a mood disorder?),Mood disorder,Do you have a mood disorder?,,, +CCC_280,CCC_280_cat2_NA::a,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Mood disorder,Do you have a mood disorder?,,, +CCC_280,CCC_280_cat2_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Mood disorder,Do you have a mood disorder?,,, +CCC_280,CCC_280_cat2_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Mood disorder,Do you have a mood disorder?,,, +DHH_SEX,DHH_SEX_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,1,2,Male,Male,N/A,1,Male,Sex,Sex,,, +DHH_SEX,DHH_SEX_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,2,2,Female,Female,N/A,2,Female,Sex,Sex,,, +DHH_SEX,DHH_SEX_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Sex,Sex,,, +DHH_SEX,DHH_SEX_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Sex,Sex,,, +DHH_SEX,DHH_SEX_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Sex,Sex,,, +DHH_AGE,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",ICES altered,cont,copy,N/A,Age,continuous age,years,"[12,102]",Age,Age,Continuous age,Share files have continuous age.,, +DHH_AGE,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",ICES altered,cont,NA::a,N/A,not applicable,not applicable,years,96,not applicable,Age,Continuous age,,, +DHH_AGE,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",ICES altered,cont,NA::b,N/A,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),Age,Continuous age,,, +DHH_AGE,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",ICES altered,cont,NA::b,N/A,missing,missing,years,else,else,Age,Continuous age,,, +DHH_MS,DHH_MS_cat4_1,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,1,4,Married,Married,N/A,1,Married,Marital status,2001:Marital status - (G); [Marital status],,, +DHH_MS,DHH_MS_cat4_2,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,2,4,Common-law,Common-law,N/A,2,Common-law,Marital status,2001:Marital status - (G); [Marital status],,, +DHH_MS,DHH_MS_cat4_3,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,3,4,Widow/Sep/Div,Widow/Sep/Div,N/A,"[3,5]",Widow/Sep/Div,Marital status,2001:Marital status - (G); [Marital status],,, +DHH_MS,DHH_MS_cat4_4,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,4,4,Single/Never mar.,Single/Never mar.,N/A,6,Single/Never mar.,Marital status,2001:Marital status - (G); [Marital status],,, +DHH_MS,DHH_MS_cat4_NA::a,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::a,4,not applicable,not applicable,N/A,96,not applicable,Marital status,2001:Marital status - (G); [Marital status],,, +DHH_MS,DHH_MS_cat4_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::b,4,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),Marital status,2001:Marital status - (G); [Marital status],,, +DHH_MS,DHH_MS_cat4_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::b,4,missing,missing,N/A,else,else,Marital status,2001:Marital status - (G); [Marital status],,, +DHH_MS_A,DHH_MS_DemPoRT_cat3_1,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,1,4,Married/Common-law,Married/Common-law,N/A,"[1,2]",Married/Common-law,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, +DHH_MS_A,DHH_MS_DemPoRT_cat3_2,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,2,4,Sep/Div,Sep/Div,N/A,"[4,5]",Sep/Div,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, +DHH_MS_A,DHH_MS_DemPoRT_cat3_3,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,3,4,Widow,Widow,N/A,3,Widow,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, +DHH_MS_A,DHH_MS_DemPoRT_cat3_3,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,4,4,Single ,Single ,N/A,6,Single ,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, +DHH_MS_A,DHH_MS_DemPoRT_cat3_NA::a,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::a,4,not applicable,not applicable,N/A,96,not applicable,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, +DHH_MS_A,DHH_MS_DemPoRT_cat3_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::b,4,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, +DHH_MS_A,DHH_MS_DemPoRT_cat3_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",ICES specific,cat,NA::b,4,missing,missing,N/A,else,else,Marital status,2001:Marital status - (G); [Marital status],DemPoRt marriage categories,, +EDUDR04,EDUDR04_cat4_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,1,4,Less than high school,Less than High School,N/A,1,< Than Secondary,Highest education,Highest level/education - 4 categories,Slight change in wording of categories from CCHS 2011 onwards,, +EDUDR04,EDUDR04_cat4_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,2,4,High school graduate,High School Graduate,N/A,2,Secondary grad,Highest education,Highest level/education - 4 categories,,, +EDUDR04,EDUDR04_cat4_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,3,4,Some post-secondary education,Some post-secondary education,N/A,3,Other post-sec.,Highest education,Highest level/education - 4 categories,,, +EDUDR04,EDUDR04_cat4_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,4,4,Post-secondary graduate,Post-secondary graduate,N/A,4,Post-sec. grad,Highest education,Highest level/education - 4 categories,,, +EDUDR04,EDUDR04_cat4_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,NA::a,4,not applicable,not applicable,N/A,6,not applicable,Highest education,Highest level/education - 4 categories,,, +EDUDR04,EDUDR04_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,NA::b,4,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Highest education,Highest level/education - 4 categories,CCHS 2001 does not have don't know (7) or refusal (8); CCHS 2001 ICES has don't know (7) and refusal (8),, +EDUDR04,EDUDR04_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",ICES confirmed,cat,NA::b,4,missing,missing,N/A,else,else,Highest education,Highest level/education - 4 categories,,, +FVCDJUI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]",ICES confirmed,cont,copy,N/A,Daily juice,Daily juice,N/A,"[0,47]",Daily consumption - fruit juice - (D),Juice consumption,Daily consumption - fruit juice (D),,, +FVCDJUI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,N/A,999.6,Not applicable,Juice consumption,Daily consumption - fruit juice (D),,, +FVCDJUI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),Juice consumption,Daily consumption - fruit juice (D),Don't know (999.7) and refusal (999.8) not included in 2001 CCHS,, +FVCDJUI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,else,else,Juice consumption,Daily consumption - fruit juice (D),,, +FVCDPOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]",ICES confirmed,cont,copy,N/A,Daily potatoes,Daily potatoes,N/A,"[0,30]",Daily consumption - potatoes - (D),Potato consumption,Daily consumption - potatoes (D),,, +FVCDPOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,N/A,999.6,Not applicable,Potato consumption,Daily consumption - potatoes (D),,, +FVCDPOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),Potato consumption,Daily consumption - potatoes (D),Don't know (999.7) and refusal (999.8) not included in 2001 CCHS,, +FVCDPOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,else,else,Potato consumption,Daily consumption - potatoes (D),,, +FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,copy,N/A,Daily total fruits and vegetables,Daily total fruits and vegetables,N/A,"[0,70]",Daily consumption - total fruits and veg. - (D),Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),,, +FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,N/A,999.6,Not applicable,Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),,, +FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),Don't know (999.7) and refusal (999.8) not included in 2001 CCHS,, +FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,else,else,Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),,, +FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,N/A,9999.6,Not applicable,Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),Not applicable (9999.6) not included in 2015-2016 CCHS,, +FVCDTOT,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",ICES confirmed,cont,NA::b,N/A,missing,missing,N/A,9999.9,don't know (999.7); refusal (999.8); not stated (999.9),Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),,, +GEN_01,GEN_01_cat5_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,1,5,Excellent,Excellent,N/A,1,Excellent,Self-perceived health,Self-perceived health,,, +GEN_01,GEN_01_cat5_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,2,5,Very good,Very good,N/A,2,Very good,Self-perceived health,Self-perceived health,,, +GEN_01,GEN_01_cat5_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,3,5,Good,Good,N/A,3,Good,Self-perceived health,Self-perceived health,,, +GEN_01,GEN_01_cat5_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,4,5,Fair,Fair,N/A,4,Fair,Self-perceived health,Self-perceived health,,, +GEN_01,GEN_01_cat5_5,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,5,5,Poor,Poor,N/A,5,Poor,Self-perceived health,Self-perceived health,,, +GEN_01,GEN_01_cat5_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,NA::a,5,not applicable,not applicable,N/A,6,not applicable,Self-perceived health,Self-perceived health,,, +GEN_01,GEN_01_cat5_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,NA::b,5,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Self-perceived health,Self-perceived health,,, +GEN_01,GEN_01_cat5_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",ICES confirmed,cat,NA::b,5,missing,missing,N/A,else,else,Self-perceived health,Self-perceived health,,, +GEN_07,GEN_07_cat5_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020, cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,1,5,Not at all,Not at all,N/A,1,Not at all,Self-perceived life stress,Self-perceived life stress,,, +GEN_07,GEN_07_cat5_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,2,5,Not very,Not very,N/A,2,Not very,Self-perceived life stress,Self-perceived life stress,,, +GEN_07,GEN_07_cat5_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,3,5,A bit,A bit,N/A,3,A bit,Self-perceived life stress,Self-perceived life stress,,, +GEN_07,GEN_07_cat5_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,4,5,Quite a bit,Quite a bit,N/A,4,Quite a bit,Self-perceived life stress,Self-perceived life stress,,, +GEN_07,GEN_07_cat5_5,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,5,5,Extremely,Extremely,N/A,5,Extremely,Self-perceived life stress,Self-perceived life stress,,, +GEN_07,GEN_07_cat5_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,NA::a,5,not applicable,not applicable,N/A,6,not applicable,Self-perceived life stress,Self-perceived life stress,CCHS 2015-2018 does not have not applicable (6),, +GEN_07,GEN_07_cat5_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,NA::b,5,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Self-perceived life stress,Self-perceived life stress,,, +GEN_07,GEN_07_cat5_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020,cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",ICES confirmed,cat,NA::b,5,missing,missing,N/A,else,else,Self-perceived life stress,Self-perceived life stress,,, +GEN_10,GEN_10_cat4_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,1,4,Very strong,Very strong,N/A,1,Very strong,Sense of belonging,Sense of belonging in the community,,, +GEN_10,GEN_10_cat4_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,2,4,Somewhat strong,Somewhat strong,N/A,2,Somewhat strong,Sense of belonging,Sense of belonging in the community,,, +GEN_10,GEN_10_cat4_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,3,4,Somewhat weak,Somewhat weak,N/A,3,Somewhat weak,Sense of belonging,Sense of belonging in the community,,, +GEN_10,GEN_10_cat4_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,4,4,Very weak,Very weak,N/A,4,Very weak,Sense of belonging,Sense of belonging in the community,,, +GEN_10,GEN_10_cat4_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,NA::a,4,not applicable,not applicable,N/A,6,not applicable,Sense of belonging,Sense of belonging in the community,,, +GEN_10,GEN_10_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,NA::b,4,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Sense of belonging,Sense of belonging in the community,,, +GEN_10,GEN_10_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",ICES confirmed,cat,NA::b,4,missing,missing,N/A,else,else,Sense of belonging,Sense of belonging in the community,,, +HUIGHER,HUIGHER_cat3_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,1,3,No hearing prob,No hearing problem,N/A,1,No hearing prob,HUI Hearing,"Hearing problems - function code (D, G)",,, +HUIGHER,HUIGHER_cat3_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,2,3,Hear corrected,Hearing corrected,N/A,2,Hear corrected,HUI Hearing,"Hearing problems - function code (D, G)",,, +HUIGHER,HUIGHER_cat3_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,3,3,Hear n-corrected,Hearing not-corrected,N/A,3,Hear n-corrected,HUI Hearing,"Hearing problems - function code (D, G)",,, +HUIGHER,HUIGHER_cat3_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,HUI Hearing,"Hearing problems - function code (D, G)",,, +HUIGHER,HUIGHER_cat3_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing,"Hearing problems - function code (D, G)",CCHS 2001 does not include don't know (7) or refusal (8),, +HUIGHER,HUIGHER_cat3_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2001_i","cchs2001_p::HUIAGHER, cchs2003_p::HUICGHER, cchs2005_p::HUIEGHER, cchs2015_2016_p::HUIDGHER, cchs2001_i::HUIAGHER, [HUIGHER]",,cat,NA::b,3,missing,missing,N/A,else,else,HUI Hearing,"Hearing problems - function code (D, G)",,, +HUIGHER,HUIGHER_cat3_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,1,3,No hearing prob,No hearing problem,N/A,1,No hearing prob,HUI Hearing,"Hearing problems - function code (D, G)",Shared files use hearing health status with more detailed categories. See derived variable documentation.,, +HUIGHER,HUIGHER_cat3_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,2,3,Hear corrected,Hearing corrected,N/A,"[2,3]",Hear corrected,HUI Hearing,"Hearing problems - function code (D, G)",,, +HUIGHER,HUIGHER_cat3_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,3,3,Hear n-corrected,Hearing not-corrected,N/A,"[4,6]",Hear n-corrected,HUI Hearing,"Hearing problems - function code (D, G)",,, +HUIGHER,HUIGHER_cat3_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,NA::a,3,not applicable,not applicable,N/A,96,not applicable,HUI Hearing,"Hearing problems - function code (D, G)",,, +HUIGHER,HUIGHER_cat3_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,NA::b,3,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),HUI Hearing,"Hearing problems - function code (D, G)",,, +HUIGHER,HUIGHER_cat3_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2009_2010_i, cchs2013_2014_i",[HUIDHER],,cat,NA::b,3,missing,missing,N/A,else,else,HUI Hearing,"Hearing problems - function code (D, G)",,, +HUI06,HUI06_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,1,2,Able to hear in a group w/o hearing aid,Able to hear in a group without a hearing aid,N/A,1,Able to hear in a group with a hearing aid,HUI Hearing,Hearing ability - in a group without a hearing aid,,, +HUI06,HUI06_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,2,2,Unable to hear in a group w/o hearing aid,Unable to hear in a group without a hearing aid,N/A,2,Unable to hear in a group with a hearing aid,HUI Hearing,Hearing ability - in a group without a hearing aid,,, +HUI06,HUI06_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing,Hearing ability - in a group without a hearing aid,,, +HUI06,HUI06_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing,Hearing ability - in a group without a hearing aid,,, +HUI06,HUI06_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing,Hearing ability - in a group without a hearing aid,,, +HUI07,HUI07_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,1,2,Able to hear in a group w/ hearing aid,Able to hear in a group with hearing aid,N/A,1,Able to hear in a group with a hearing aid,HUI Hearing,Hearing ability - in a group with a hearing aid,,, +HUI07,HUI07_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,2,2,Unable to hear in a group w/ hearing aid,Unable to hear in a group with hearing aid,N/A,2,Unable to hear in a group with a hearing aid,HUI Hearing,Hearing ability - in a group with a hearing aid,,, +HUI07,HUI07_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing,Hearing ability - in a group with a hearing aid,,, +HUI07,HUI07_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing,Hearing ability - in a group with a hearing aid,,, +HUI07,HUI07_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing,Hearing ability - in a group with a hearing aid,,, +HUI07A,HUI07_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,1,2,Yes,Yes,N/A,1,Able to hear,HUI Hearing,Hearing ability - Able to hear,,, +HUI07A,HUI07_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,2,2,No,No,N/A,2,Unable to hear,HUI Hearing,Hearing ability - Able to hear,,, +HUI07A,HUI07_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing,Hearing ability - Able to hear,,, +HUI07A,HUI07_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,NA::a,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing,Hearing ability - Able to hear,,, +HUI07A,HUI07_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing,Hearing ability - Able to hear,,, +HUI08,HUI08_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,1,2,Yes,Yes,N/A,1,Able to hear in quiet room without a hearing aid,HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, +HUI08,HUI08_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,2,2,No ,No,N/A,2,Unable to hear in quiet room without a hearing aid,HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, +HUI08,HUI08_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, +HUI08,HUI08_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::a,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, +HUI08,HUI08_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing ,Hearing ability - Able to hear in quiet room without hearing aid ,,, +HUI09,HUI09_cat2_1,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_09, cchs2003_i::HUIC_09, [HUI_09]",ICES specific,cat,1,2,Yes,Yes,N/A,1,Able to hear in quiet room with a hearing aid,HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, +HUI09,HUI09_cat2_2,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,2,2,No ,No ,N/A,2,Unable to hear in quiet room with a hearing aid ,HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, +HUI09,HUI09_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, +HUI09,HUI09_cat2_NA::a,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::a,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, +HUI09,HUI09_cat2_NA::b,cat,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,HUI Hearing ,Hearing ability - Able to hear in quiet room with hearing aid,,, +HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, [HWTGBMI]",ICES confirmed,cont,copy,N/A,BMI,Body Mass Index,kg/m2,"[8.07,137.46]","BMI / self-report - (D,G)",BMI,"BMI / self-report - (D,G)","CCHS 2001 restricts BMI to ages 20-64. CCHS 2015-2016 uses adjusted BMI. Consider using using HWTGBMI_der for the most concistent BMI variable across all CCHS cycles. See documentation for BMI_fun() in derived variables for more details, or type ?BMI_fun in the console.",, +HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,kg/m2,999.6,Not applicable,BMI,"BMI / self-report - (D,G)","CCHS 2001 and 2003 codes not applicable and missing variables as 999.6 and 999.7-999.9 respectively, while CCHS 2005 onwards codes not applicable and missing variables as 999.96 and 999.7-999.99 respectively",, +HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg/m2,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),BMI,"BMI / self-report - (D,G)",Don't know (999.7) and refusal (999.8) not included in 2001 CCHS,, +HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,kg/m2,999.96,Not applicable,BMI,"BMI / self-report - (D,G)",,, +HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg/m2,"[999.97,999.99]",don't know (999.97); refusal (999.98); not stated (999.99),BMI,"BMI / self-report - (D,G)",,, +HWTGBMI,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, cchs2015_2016_i::HWTGVBMI, [HWTGBMI]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg/m2,else,else,BMI,"BMI / self-report - (D,G)",,, +HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADBMI, cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2015_2016_i::HWTDVBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,copy,N/A,BMI,Body Mass Index,kg/m3,"[8.07, 137.46]",BMI / self-report - (D),BMI,BMI / self-report - (D),,, +HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::a,N/A,not applicable,not applicable,kg/m4,999.6,Not applicable,BMI,BMI / self-report - (D),,, +HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::b,N/A,missing,missing,kg/m5,"[999.7,999.9]",don't know (999.7); refusal (999.8); not stated (999.9),BMI,BMI / self-report - (D),,, +HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::a,N/A,not applicable,not applicable,kg/m6,999.96,Not applicable,BMI,BMI / self-report - (D),,, +HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::b,N/A,missing,missing,kg/m7,"[999.97,999.99]",don't know (999.97); refusal (999.98); not stated (999.99),BMI,BMI / self-report - (D),,, +HWTDBMI,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",ICES specific,cont,NA::b,N/A,missing,missing,kg/m8,else,else,BMI,BMI / self-report - (D),,, +HWTGBMI_der,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGHTM, HWTGWTK]",,N/A,Func::bmi_fun,N/A,N/A,N/A,kg/m2,N/A,N/A,Derived BMI,Derived Body Mass Index,"BMI variable derived from the harmonized height and weight variables. See documentation for BMI_fun() in derived variables for more details, or type ?BMI_fun in the console.",, +HWTGBMI_der,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[HWTGHTM, HWTGWTK]",,N/A,NA::b,N/A,missing,missing,kg/m2,N/A,N/A,Derived BMI,Derived Body Mass Index,,, +HWTDBMI_der,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[HWTDHTM, HWTDWTK]",,N/A,Func::bmi_fun_D,N/A,missing,missing,kg/m2,N/A,N/A,Derived BMI,Derived Body Mass Index,,, +HWTDBMI_der,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[HWTDHTM, HWTDWTK]",,N/A,NA::b,N/A,missing,missing,kg/m2,N/A,N/A,Derived BMI,Derived Body Mass Index,,, +HWTGBMI_der_cat4,HWTGBMI_der_cat4N/A_Func::bmi_fun_cat,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,Func::bmi_fun_cat,N/A,N/A,N/A,kg/m2,N/A,N/A,Categorical BMI,Categorical body mass index,,, +HWTGBMI_der_cat4,HWTGBMI_der_cat4_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,1,4,Underweight,Underweight with BMI less than 18.5,kg/m2,1,Underweight,Categorical BMI,Categorical body mass index,,, +HWTGBMI_der_cat4,HWTGBMI_der_cat4_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,2,4,Normal weight,Normal weight with BMI between 18.5 and 25,kg/m2,2,Normal weight,Categorical BMI,Categorical body mass index,,, +HWTGBMI_der_cat4,HWTGBMI_der_cat4_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,3,4,Overweight,Overweight with BMI between 25 and 30,kg/m2,3,Overweight,Categorical BMI,Categorical body mass index,,, +HWTGBMI_der_cat4,HWTGBMI_der_cat4_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,4,4,Obese,Obese with BMI greater than 30,kg/m2,4,Obese,Categorical BMI,Categorical body mass index,,, +HWTGBMI_der_cat4,HWTGBMI_der_cat4_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,NA::a,4,not applicable,not applicable,kg/m2,NA::a,not applicable,Categorical BMI,Categorical body mass index,,, +HWTGBMI_der_cat4,HWTGBMI_der_cat4_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[HWTGBMI_der],,N/A,NA::b,4,missing,missing,kg/m2,NA::b,missing,Categorical BMI,Categorical body mass index,,, +HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,Func::bmi_fun_cat_D,N/A,N/A,N/A,kg/m2,N/A,N/A,Categorical BMI,Categorical body mass index,,, +HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,1,4,Underweight,Underweight with BMI less than 18.5,kg/m2,1,Underweight,Categorical BMI,Categorical body mass index,,, +HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,2,4,Normal weight,Normal weight with BMI between 18.5 and 25,kg/m2,2,Normal weight,Categorical BMI,Categorical body mass index,,, +HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,3,4,Overweight,Overweight with BMI between 25 and 30,kg/m2,3,Overweight,Categorical BMI,Categorical body mass index,,, +HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,4,4,Obese,Obese with BMI greater than 30,kg/m2,4,Obese,Categorical BMI,Categorical body mass index,,, +HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,NA::a,4,not applicable,not applicable,kg/m2,NA::a,not applicable,Categorical BMI,Categorical body mass index,,, +HWTDBMI_der_cat4,HWTDBMI_der_cat4N/A_Func::bmi_fun_cat_D,cat,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4,,N/A,NA::b,4,missing,missing,kg/m2,NA::b,missing,Categorical BMI,Categorical body mass index,,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.118,N/A,Height,converted height (3'8 IN - 44 inches),meters,1,3'8 IN - 44 inches,Height,"Height (metres)/self-reported - (D,G)","2001 and 2003 CCHS use inches, values converted to meters to 3 decimal points",, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.143,N/A,Height,converted height (3'9 IN - 45 inches),meters,2,3'9 IN - 45 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.168,N/A,Height,converted height (3'10 IN - 46 inches),meters,3,3'10 IN - 46 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.194,N/A,Height,converted height (3'11 IN - 47 inches),meters,4,3'11 IN - 47 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.219,N/A,Height,converted height (4'0 IN - 48 inches),meters,5,4'0 IN - 48 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.245,N/A,Height,converted height (4'1 IN - 49 inches),meters,6,4'1 IN - 49 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.27,N/A,Height,converted height (4'2 IN - 50 inches),meters,7,4'2 IN - 50 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.295,N/A,Height,converted height (4'3 IN - 51 inches),meters,8,4'3 IN - 51 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.321,N/A,Height,converted height (4'4 IN - 52 inches),meters,9,4'4 IN - 52 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.346,N/A,Height,converted height (4'5 IN - 53 inches),meters,10,4'5 IN - 53 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.372,N/A,Height,converted height (4'6 IN - 54 inches),meters,11,4'6 IN - 54 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.397,N/A,Height,converted height (4'7 IN - 55 inches),meters,12,4'7 IN - 55 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.422,N/A,Height,converted height (4'8 IN - 56 inches),meters,13,4'8 IN - 56 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.448,N/A,Height,converted height (4'9 IN - 57 inches),meters,14,4'9 IN - 57 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.473,N/A,Height,converted height (4'10 IN - 58 inches),meters,15,4'10 IN - 58 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.499,N/A,Height,converted height (4'11 in - 59 inches),meters,16,4'11 in - 59 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.524,N/A,Height,converted height (5'0 IN - 60 inches),meters,17,5'0 IN - 60 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.549,N/A,Height,converted height (5'1 IN - 61 inches),meters,18,5'1 IN - 61 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.575,N/A,Height,converted height (5'2 IN - 62 inches),meters,19,5'2 IN - 62 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.6,N/A,Height,converted height (5'3 IN - 63 inches),meters,20,5'3 IN - 63 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.626,N/A,Height,converted height (5'4 IN - 64 inches),meters,21,5'4 IN - 64 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.651,N/A,Height,converted height (5'5 IN - 65 inches),meters,22,5'5 IN - 65 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.676,N/A,Height,converted height (5'6 IN - 66 inches),meters,23,5'6 IN - 66 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.702,N/A,Height,converted height (5'7 IN - 67 inches),meters,24,5'7 IN - 67 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.727,N/A,Height,converted height (5'8 IN - 68 inches),meters,25,5'8 IN - 68 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.753,N/A,Height,converted height (5'9 IN - 69 inches),meters,26,5'9 IN - 69 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.778,N/A,Height,converted height (5'10 IN - 70 inches),meters,27,5'10 IN - 70 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.803,N/A,Height,converted height (5'11 IN - 71 inches),meters,28,5'11 IN - 71 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.829,N/A,Height,converted height (6'0 IN - 72 inches),meters,29,6'0 IN - 72 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.854,N/A,Height,converted height (6'1 IN - 73 inches),meters,30,6'1 IN - 73 inches,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,1.93,N/A,Height,converted height (6'2 IN+ - 74+ inches),meters,31,6'2 IN+ - 74+ inches,Height,"Height (metres)/self-reported - (D,G)",74+ inches converted to 76 inches,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,NA::a,N/A,not applicable,not applicable,meters,96,not applicable,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,NA::b,N/A,missing,missing,meters,99,not stated (99),Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::HWTAGHT, cchs2003_p::HWTCGHT",,cat,NA::b,N/A,missing,missing,meters,else,else,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]",,cont,copy,N/A,Height,Height,meters,"[0.914,2.134]",Height,Height,"Height (metres)/self-reported - (D,G)",Height is a reported in meters from 2005 CCHS onwards,, +HWTGHTM,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]",,cont,NA::a,N/A,not applicable,not applicable,meters,9.996,not applicable,Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]",,cont,NA::b,N/A,missing,missing,meters,"[9.997,9.999]","don't know (9.997), refusal (9.998), not stated (9.999)",Height,"Height (metres)/self-reported - (D,G)",,, +HWTGHTM,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","cchs2005_p::HWTEGHTM, cchs2015_2016_p::HWTDGHTM, cchs2017_2018_p::HWTDGHTM, cchs2009_s::HWTDHTM, cchs2010_s::HWTDHTM, cchs2012_s::HWTDHTM, [HWTGHTM]",,cont,NA::b,N/A,missing,missing,meters,else,else,Height,"Height (metres)/self-reported - (D,G)",,, +HWTDHTM,N/A,cont,cchs_2001_i,[HWTADHTM],ICES specific,cont,copy,N/A,Height,Height,meters,"[0.914, 2.134]",Height,Height,Height (metres)/self-reported - (D),,, +HWTDHTM,N/A,cont,cchs_2001_i,[HWTADHTM],ICES specific,cont,NA::a,N/A,Height,Height,meters,9.996,not applicable,Height,Height (metres)/self-reported - (D),,, +HWTDHTM,N/A,cont,cchs_2001_i,[HWTADHTM],ICES specific,cont,NA::b,N/A,Height,Height,meters,"[9.997,9.999]",don't know (9.997); refusal (9.998); not stated (9.999),Height,Height (metres)/self-reported - (D),,, +HWTDHTM,N/A,cont,cchs_2001_i,[HWTADHTM],ICES specific,cont,NA::b,N/A,Height,Height,meters,else,else,Height,Height (metres)/self-reported - (D),,, +HWTDHTM,N/A,cont,"cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]",ICES specific,cont,copy,N/A,Height,Height,meters,"[0.914, 2.134]",Height,Height,Height (metres)/self-reported - (D),,, +HWTDHTM,N/A,cont,"cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]",ICES specific,cont,NA::a,N/A,not applicable,not applicable,meters,9.996,not applicable,Height,Height (metres)/self-reported - (D),,, +HWTDHTM,N/A,cont,"cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]",ICES specific,cont,NA::b,N/A,missing,missing,meters,"[9.997, 9.999]",don't know (9.997); refusal (9.998); not stated (9.999),Height,Height (metres)/self-reported - (D),,, +HWTDHTM,N/A,cont,"cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]",ICES specific,cont,NA::b,N/A,missing,missing,meters,else,else,Height,Height (metres)/self-reported - (D),,, +HWTDWTK,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]",ICES confirmed,cont,copy,N/A,Weight,Weight - kilograms,kg,***,"Weight - kilograms (D, G)",Weight,"Weight - kilograms (D, G)",,, +HWTDWTK,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,kg,999.96,not applicable,Weight,"Weight - kilograms (D, G)",,, +HWTDWTK,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg,"[999.97, 999.99]",don't know (999.97); refusal (999.98); not stated (999.99),Weight,"Weight - kilograms (D, G)",,, +HWTDWTK,N/A,cont,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]",ICES confirmed,cont,NA::b,N/A,missing,missing,kg,else,else,Weight,"Weight - kilograms (D, G)",,, +pack_years_cat,pack_years_catN/A_Func::pack_years_fun_cat,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,Func::pack_years_fun_cat,N/A,N/A,N/A,pack-years,N/A,N/A,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_1,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,1,8,0,0 pack-years,pack-years,N/A,0 pack-years,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_2,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,2,8,0 to 0.01,0 to 0.01 pack-years,pack-years,N/A,0 to 0.01 pack-years,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_3,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,3,8,0.01 to 3.0,0.01 to 3.0 pack-years,pack-years,N/A,0.01 to 3.0 pack-years,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_4,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,4,8,3.0 to 9.0,3.0 to 9.0 pack-years,pack-years,N/A,3.0 to 9.0 pack-years,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_5,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,5,8,9.0 to 16.2,9.0 to 16.2 pack-years,pack-years,N/A,9.0 to 16.2 pack-years,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_6,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,6,8,16.2 to 25.7,16.2 to 25.7 pack-years,pack-years,N/A,16.2 to 25.7 pack-years,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_7,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,7,8,25.7 to 40.0,25.7 to 40.0 pack-years,pack-years,N/A,25.7 to 40.0 pack-years,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_8,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,8,8,40.0+,40.0+ pack-years,pack-years,N/A,40.0+ pack-years,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_NA::a,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,NA::a,8,not applicable,not applicable,pack-years,N/A,not applicable,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_cat,pack_years_cat_cat8_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s",DerivedVar::[pack_years_der],,N/A,NA::b,8,missing,missing,pack-years,N/A,missing,Categorical PackYears,Categorical smoking pack-years,,, +pack_years_der,N/A,cont,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[SMKDSTY_A, DHHGAGE_cont, time_quit_smoking, SMKG203_cont, SMKG207_cont, SMK_204, SMK_05B, SMK_208, SMK_05C, SMKG01C_cont, SMK_01A]",,N/A,Func::pack_years_fun,N/A,N/A,N/A,pack-years,N/A,N/A,PackYears,Smoking pack-years,PackYears variable derived from various harmonized smoking variables,, +pack_years_der,N/A,cont,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[SMKDSTY_A, DHHGAGE_cont, time_quit_smoking, SMKG203_cont, SMKG207_cont, SMK_204, SMK_05B, SMK_208, SMK_05C, SMKG01C_cont, SMK_01A]",,N/A,NA::b,N/A,missing,missing,pack-years,N/A,N/A,PackYears,Smoking pack-years,,, +PACFLEI,PACFLEI_cat_cat6_1,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,1,2,Yes,Yes,Leisure physical activity,1,Yes,Leisure phys. activity,Leisure physical activity,,, +PACFLEI,PACFLEI_cat_cat6_2,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,2,2,No,No,Leisure physical activity,2,No,Leisure phys. activity,Leisure physical activity,,, +PACFLEI,PACFLEI_cat_cat6_NA::a,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,NA::a,2,not applicable,not applicable,Leisure physical activity,6,not applicable,Leisure phys. activity,Leisure physical activity,,, +PACFLEI,PACFLEI_cat_cat6_NA::b,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,NA::b,2,missing,missing,Leisure physical activity,"[7,9]",don't know (7); refusal (8); not stated (9) ,Leisure phys. activity,Leisure physical activity,,, +PACFLEI,PACFLEI_cat_cat6_NA::b,cat,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",ICES specific,cat,NA::b,2,missing,missing,Leisure physical activity,else,else,Leisure phys. activity,Leisure physical activity,,, +RAC_6D,RAC_6D_cat_cat1,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,1,2,Yes,Yes,N/A,1,Yes,Help heavy housework,Needs help - heavy housework,,, +RAC_6D,RAC_6D_cat_cat2,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,2,2,No,No,N/A,2,No,Help heavy housework,Needs help - heavy housework,,, +RAC_6D,RAC_6D_cat_NA::a,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Help heavy housework,Needs help - heavy housework,,, +RAC_6D,RAC_6D_cat_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,NA::b,2,missing,missing,N/A,"[7,9]",dont know (7); refusal (8); not stated (9),Help heavy housework,Needs help - heavy housework,,, +RAC_6D,RAC_6D_cat_NA::b,cat,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",ICES specific,cat,NA::b,2,missing,missing,N/A,else,else,Help heavy housework,Needs help - heavy housework,,, +SDCFIMM,SDCFIMM_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,1,2,Yes,Yes,N/A,1,Yes,Immigrant status,Immigrant Status (D),,, +SDCFIMM,SDCFIMM_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2019","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,2,2,No,No,N/A,2,No,Immigrant status,Immigrant Status (D),,, +SDCFIMM,SDCFIMM_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2020","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Immigrant status,Immigrant Status (D),,, +SDCFIMM,SDCFIMM_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2021","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Immigrant status,Immigrant Status (D),,, +SDCFIMM,SDCFIMM_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016, cchs2017_2022","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,Immigrant status,Immigrant Status (D),,, +SDCGCGT,SDCGCGT_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,1,2,White,White,N/A,1,White,Ethnicity,"Cultural or racial origin - (D, G)",,, +SDCGCGT,SDCGCGT_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,2,2,Non-white,Non-white,N/A,2,Visible minority,Ethnicity,"Cultural or racial origin - (D, G)",,, +SDCGCGT,SDCGCGT_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,Ethnicity,"Cultural or racial origin - (D, G)",,, +SDCGCGT,SDCGCGT_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Ethnicity,"Cultural or racial origin - (D, G)","CCHS 2001 missing don't know (7), refusal (8)",, +SDCGCGT,SDCGCGT_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",ICES altered,cat,NA::b,2,missing,missing,N/A,else,else,Ethnicity,"Cultural or racial origin - (D, G)",,, +SDCDCGT_A,SDCDCGT_A_cat13_1,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,1,14,White,White,N/A,1,White,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_2,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,2,14,Black,Black,N/A,2,Black,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_3,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,3,14,Korean,Korean,N/A,3,Korean,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_4,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,4,14,Filipino,Filipino,N/A,4,Filipino,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_5,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,5,14,Japanese,Japanese,N/A,5,Japanese,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_6,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,6,14,Chinese,Chinese,N/A,6,Chinese,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_7,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,7,14,Aboriginal/N ame,Aboriginal/N ame,N/A,7,Aboriginal/N ame,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_8,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,8,14,South Asian,South Asian,N/A,8,South Asian,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_9,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,9,14,South East Asian,South East Asian,N/A,9,South East Asian,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_10,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,10,14,Arab,Arab,N/A,10,Arab,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_11,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,11,14,West Asian,West Asian,N/A,11,West Asian,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_12,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,12,14,Latin American,Latin American,N/A,12,Latin American,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_13,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,13,14,Other,Other,N/A,13,Other,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_13,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,14,14,Multiple origins,Multiple origins,N/A,14,Multiple origins,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_NA::a,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,NA::a,14,not applicable,not applicable,N/A,96,not applicable,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_NA::b,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,NA::b,14,missing,missing,N/A,"[97, 99]",don't know (97); refusal (98); not stated (99),Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_NA::b,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, [SDCDCGT] ",ICES specific,cat,NA::b,14,missing,missing,N/A,else,else,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_1,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,1,13,White only,White only,N/A,1,White only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_2,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,2,13,South Asian only,South Asian only,N/A,8,South Asian only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_3,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,3,13,Chinese only,Chinese only,N/A,6,Chinese only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_4,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,4,13,Black only,Black only,N/A,2,Black only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_5,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,5,13,Filipino only,Filipino only,N/A,4,Filipino only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_6,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,6,13,Latin American only,Latin American only,N/A,12,Latin American only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_7,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,7,13,Arab only,Arab only,N/A,10,Arab only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_8,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,8,13,Southeastern Asian only,Southeastern Asian only,N/A,9,Southeastern Asian only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_9,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,9,13,West Asian only,West Asian only,N/A,11,West Asian only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_10,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,10,13,Korean only,Korean only,N/A,3,Korean only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_11,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,11,13,Japenese only,Japenese only,N/A,5,Japenese only,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_12,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,12,13,Other racial or cultural origin (only),Other racial or cultural origin (only),N/A,13,Other racial or cultural origin (only),Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_13,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,13,13,Multiple racial or cultural origins,Multiple racial or cultural origins,N/A,14,Multiple racial or cultural origins,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_NA::a,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,NA::a,13,not applicable,not applicable,N/A,96,not applicable,Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_NA::b,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,NA::b,13,missing,missing,N/A,"[97, 99]",don't know (97); refusal (98); not stated (99),Ethnicity,Cultural or racial origin,,, +SDCDCGT_A,SDCDCGT_A_cat13_NA::b,cat,"cchs2015_2016_i, cchs2017_2018_i",[SDCDVCGT],ICES specific,cat,NA::b,13,missing,missing,N/A,else,else,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_1,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,1,7,White,White,N/A,1,White,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_2,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,2,7,Black,Black,N/A,2,Black,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_3,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,3,7,Chinese,Chinese,N/A,6,Chinese,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_4,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,4,7,Aboriginal,Aboriginal,N/A,7,Aboriginal,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_5,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,5,7,Japanese/Korean/South East Asian/Filipino,Japanese/Korean/South East Asian/Filipino,N/A,[3],Japanese/Korean/South East Asian/Filipino,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_5,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,5,7,Japanese/Korean/South East Asian/Filipino,Japanese/Korean/South East Asian/Filipino,N/A,[5],Japanese/Korean/South East Asian/Filipino,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_5,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,5,7,Japanese/Korean/South East Asian/Filipino,Japanese/Korean/South East Asian/Filipino,N/A,[9],Japanese/Korean/South East Asian/Filipino,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_6,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,6,7,other/multiple origin/unknown/Latin American,other/multiple origin/unknown/Latin American,N/A,[12],other/multiple origin/unknown/Latin American,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_6,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,6,7,other/multiple origin/unknown/Latin American,other/multiple origin/unknown/Latin American,N/A,[14],other/multiple origin/unknown/Latin American,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_7,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,7,7,South Asian/Arab/West Asian,South Asian/Arab/West Asian,N/A,[8],South Asian/Arab/West Asian,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_7,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,7,7,South Asian/Arab/West Asian,South Asian/Arab/West Asian,N/A,"[10,11]",South Asian/Arab/West Asian,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_NA::a,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,NA::a,7,not applicable,not applicable,N/A,96,not applicable,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_NA::b,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,NA::b,7,missing,missing,N/A,"[97,99]",missing,Ethnicity,Cultural or racial origin,,, +SDCDCGT_B,SDCDCGT_B_cat7_NA::b,cat,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",ICES specific,cat,NA::b,7,missing,missing,N/A,else,else,Ethnicity,Cultural or racial origin,,, +SLP_02,SLP_02_cat5_1,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,1,5,None of the time,None of the time,N/A,1,None of the time,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02,SLP_02_cat5_2,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,2,5,Little of the time,Little of the time,N/A,2,Little of the time,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02,SLP_02_cat5_3,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,3,5,Some of the time,Some of the time,N/A,3,Some of the time,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02,SLP_02_cat5_4,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,4,5,Most of the time,Most of the time,N/A,4,Most of the time,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02,SLP_02_cat5_5,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,5,5,All the time,All the time,N/A,5,All the time,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02,SLP_02_cat5_NA::a,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,NA::a,5,not applicable,not applicable,N/A,6,not applicable,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02,SLP_02_cat5_NA::b,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,NA::b,5,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02,SLP_02_cat5_NA::b,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",ICES altered,cat,NA::b,5,missing,missing,N/A,else,else,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02_A,SLP_02_A_cat3_1,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,1,3,Most of the time,Most of the time,N/A,1,Most of the time,Trouble sleeping,Freq. - trouble sleeping,CCHS 2001 has different categories from other cycles,, +SLP_02_A,SLP_02_A_cat3_2,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,2,3,Sometimes,Sometimes,N/A,2,Sometimes,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02_A,SLP_02_A_cat3_3,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,3,3,Never,Never,N/A,3,Never,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02_A,SLP_02_A_cat3_NA::a,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02_A,SLP_02_A_cat3_NA::b,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Trouble sleeping,Freq. - trouble sleeping,,, +SLP_02_A,SLP_02_A_cat3_NA::b,cat,"cchs2001_p, cchs2001_i",[GENA_04],ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Trouble sleeping,Freq. - trouble sleeping,,, +SLP_03,SLP_03_cat5_1,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,1,5,None of the time,None of the time,N/A,1,None of the time,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03,SLP_03_cat5_2,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,2,5,Little of the time,Little of the time,N/A,2,Little of the time,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03,SLP_03_cat5_3,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,3,5,Some of the time,Some of the time,N/A,3,Some of the time,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03,SLP_03_cat5_4,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,4,5,Most of the time,Most of the time,N/A,4,Most of the time,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03,SLP_03_cat5_5,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,5,5,All the time,All the time,N/A,5,All the time,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03,SLP_03_cat3_NA::a,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03,SLP_03_cat3_NA::b,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03,SLP_03_cat3_NA::b,cat,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03_A,SLP_03_A_cat3_1,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,1,3,Most of the time,Most of the time,N/A,1,Most of the time,Sleep refreshing,Freq. - find sleep refreshing,CCHS 2001 has different categories from other cycles,, +SLP_03_A,SLP_03_A_cat3_2,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,2,3,Sometimes,Sometimes,N/A,2,Sometimes,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03_A,SLP_03_A_cat3_3,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,3,3,Never,Never,N/A,3,Never,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03_A,SLP_03_A_cat3_NA::a,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,NA::a,3,not applicable,not applicable,N/A,6,not applicable,Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03_A,SLP_03_A_cat3_NA::b,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,NA::b,3,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),Sleep refreshing,Freq. - find sleep refreshing,,, +SLP_03_A,SLP_03_A_cat3_NA::b,cat,"cchs2001_p, cchs2001_i",[GENA_05],ICES altered,cat,NA::b,3,missing,missing,N/A,else,else,Sleep refreshing,Freq. - find sleep refreshing,,, +SLPG01_B,SLPG01_B_cat11_1,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,1,11,<2 hours,<2 hours,Hours,1,<2 hours,Hours sleep,No./hours spent sleeping each night,,,Possible mistake with <2 hours +SLPG01_B,SLPG01_B_cat11_2,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,2,11,3-<4 hours,3-<4 hours,Hours,2,3-<4 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_3,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,3,11,4-<5 hours,4-<5 hours,Hours,3,4-<5 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_4,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,4,11,5-<6 hours,5-<6 hours,Hours,4,5-<6 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_5,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,5,11,6-<7 hours,6-<7 hours,Hours,5,6-<7 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_6,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,6,11,7-<8 hours,7-<8 hours,Hours,6,7-<8 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_7,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,7,11,8-<9 hours,8-<9 hours,Hours,7,8-<9 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_8,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,8,11,9-<10 hours,9-<10 hours,Hours,8,9-<10 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_9,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,9,11,10-<11 hours,10-<11 hours,Hours,9,10-<11 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_10,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,10,11,11-<12 hours,11-<12 hours,Hours,10,11-<12 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_11,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,11,11,>= 12 hours,>= 12 hours,Hours,11,>= 12 hours,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_NA::a,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,NA::a,11,not applicable,not applicable,Hours,96,not applicable,Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_NA::a,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,NA::b,11,missing,missing,Hours,"[97,99]",don't know (97); refusal (98); not stated (99),Hours sleep,No./hours spent sleeping each night,,, +SLPG01_B,SLPG01_B_cat11_NA::b,cat,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01],ICES specific,cat,NA::b,11,missing,missing,Hours,else,else,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_1,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_005",ICES specific,cat,1,12,<2 hours,<2 hours,Hours,1,<2 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_2,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_006",ICES specific,cat,2,12,2-<3 hours,2-<3 hours,Hours,2,2-<3 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_3,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_007",ICES specific,cat,3,12,3-<4 hours,3-<4 hours,Hours,3,3-<4 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_4,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_008",ICES specific,cat,4,12,4-<5 hours,4-<5 hours,Hours,4,4-<5 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_5,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_009",ICES specific,cat,5,12,5-<6 hours,5-<6 hours,Hours,5,5-<6 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_6,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_010",ICES specific,cat,6,12,6-<7 hours,6-<7 hours,Hours,6,6-<7 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_7,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_011",ICES specific,cat,7,12,7-<8 hours,7-<8 hours,Hours,7,7-<8 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_8,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_012",ICES specific,cat,8,12,8-<9 hours,8-<9 hours,Hours,8,8-<9 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_9,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_013",ICES specific,cat,9,12,9-<10 hours,9-<10 hours,Hours,9,9-<10 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_10,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_014",ICES specific,cat,10,12,10-<11 hours,10-<11 hours,Hours,10,10-<11 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_11,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_015",ICES specific,cat,11,12,11-<12 hours,11-<12 hours,Hours,11,11-<12 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_12,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_016",ICES specific,cat,12,12,>= 12 hours,>= 12 hours,Hours,12,>= 12 hours,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_NA::a,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_017",ICES specific,cat,NA::a,12,not applicable,not applicable,Hours,96,not applicable,Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_NA::a,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_018",ICES specific,cat,NA::b,12,missing,missing,Hours,"[97,99]",don't know (97); refusal (98); not stated (99),Hours sleep,No./hours spent sleeping each night,,, +SPLG01_C,SPLG01_C_cat12_NA::b,cat,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_019",ICES specific,cat,NA::b,12,missing,missing,Hours,else,else,Hours sleep,No./hours spent sleeping each night,,, +SMK_01A,SMK_01A_cat2_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,1,2,yes,yes,N/A,1,Yes,s100,"In lifetime, smoked 100 or more cigarettes",,, +SMK_01A,SMK_01A_cat2_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,2,2,no,no,N/A,2,No,s100,"In lifetime, smoked 100 or more cigarettes",,, +SMK_01A,SMK_01A_cat2_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,NA::a,2,not applicable,not applicable,N/A,6,not applicable,s100,"In lifetime, smoked 100 or more cigarettes",,, +SMK_01A,SMK_01A_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,"[7,9]",don't know (7); refusal (8); not stated (9),s100,"In lifetime, smoked 100 or more cigarettes",,, +SMK_01A,SMK_01A_cat2_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",ICES confirmed,cat,NA::b,2,missing,missing,N/A,else,else,s100,"In lifetime, smoked 100 or more cigarettes",,, +SMK_05B,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]",ICES confirmed,cont,copy,N/A,Cigarettes/day - occasional,# of cigarettes smoked daily - daily smoker,cigarettes,"[1,99]",# of cigarettes smoked daily - occasional smoker,cigdayo,# of cigarettes smoked daily - occasional smoker,,, +SMK_05B,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,cigarettes,996,not applicable,cigdayo,# of cigarettes smoked daily - occasional smoker,,, +SMK_05B,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,"[997,999]",don't know (997); refusal (998); not stated (999),cigdayo,# of cigarettes smoked daily - occasional smoker,,, +SMK_05B,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,else,else,cigdayo,# of cigarettes smoked daily - occasional smoker,,, +SMK_05C,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]",ICES confirmed,cont,copy,N/A,# days smoked at least 1 cigarette,# days smoked at least 1 cigarette,days,"[0,31]",# days smoked at least 1 cigarette,Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",,, +SMK_05C,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,days,96,not applicable,Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",,, +SMK_05C,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]",ICES confirmed,cont,NA::b,N/A,missing,missing,days,"[97,99]",don't know (97); refusal (98); not stated (99),Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",,, +SMK_05C,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]",ICES confirmed,cont,NA::b,N/A,missing,missing,days,else,else,Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",,, +SMK_09A_A,SMK_09A_A_cat4_1,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,1,4,<1 year,Less than one year ago,years,1,Less than one year ago,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_A,SMK_09A_A_cat4_2,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,2,4,1 to 2 years,1 year to 2 years ago,years,2,1 year to 2 years ago,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_A,SMK_09A_A_cat4_3,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,3,4,3 to 5 years,3 years to 5 years ago,years,3,3 years to 5 years ago,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_A,SMK_09A_A_cat4_4,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,4,4,>5 years,More than 5 years ago,years,4,More than 5 years ago,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_A,SMK_09A_A_cat4_NA::a,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,NA::a,4,not applicable,not applicable,years,6,not applicable,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_A,SMK_09A_A_cat4_NA::b,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,NA::b,4,missing,missing,years,"[7,9]",don't know (7); refusal (8); not stated (9),stpd,When did you stop smoking daily - former daily,,, +SMK_09A_A,SMK_09A_A_cat4_NA::b,cat,"cchs2001_p, cchs2001_i","cchs2001_p::SMKA_09A, cchs2001_i::SMKA_09A",ICES confirmed,cat,NA::b,4,missing,missing,years,else,else,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_B,SMK_09A_B_cat4_1,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,1,4,<1 year,Less than one year ago,years,1,Less than 1 year,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_B,SMK_09A_B_cat4_2,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,2,4,1 to <2 years,1 year to less than 2 years ago,years,2,1 to <2 years,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_B,SMK_09A_B_cat4_3,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2020","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,3,4,2 to <3 years,2 years to less than 3 years ago,years,3,2 to <3 years,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_B,SMK_09A_B_cat4_4,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2021","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,4,4,>= 3 years,3 or more years ago,years,4,3 years or more,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_B,SMK_09A_B_cat4_NA::a,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2022","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,NA::a,4,not applicable,not applicable,years,6,not applicable,stpd,When did you stop smoking daily - former daily,,, +SMK_09A_B,SMK_09A_B_cat4_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2023","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,NA::b,4,missing,missing,years,"[7,9]",don't know (7); refusal (8); not stated (9),stpd,When did you stop smoking daily - former daily,,, +SMK_09A_B,SMK_09A_B_cat4_NA::b,cat,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2024","cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",ICES confirmed,cat,NA::b,4,missing,missing,years,else,else,stpd,When did you stop smoking daily - former daily,,, +SMK_204,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]",ICES confirmed,cont,copy,N/A,Cigarettes/day - daily,# of cigarettes smoked daily - daily smoker,cigarettes,"[1,99]",# of cigarettes smoked daily - daily smoker,cigdayd,# of cigarettes smoked daily - daily smoker,,, +SMK_204,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,cigarettes,996,not applicable,cigdayd,# of cigarettes smoked daily - daily smoker,,, +SMK_204,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,"[997,999]",don't know (997); refusal (998); not stated (999),cigdayd,# of cigarettes smoked daily - daily smoker,,, +SMK_204,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,else,else,cigdayd,# of cigarettes smoked daily - daily smoker,,, +SMK_208,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]",ICES confirmed,cont,copy,N/A,Cigarettes/day - former daily,Cigarettes/day - former daily,cigarettes,"[1,99]",# of cigarettes smoke each day - former daily,# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,,, +SMK_208,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]",ICES confirmed,cont,NA::a,N/A,not applicable,not applicable,cigarettes,996,not applicable,# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,,, +SMK_208,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,"[997,999]",don't know (997); refusal (998); not stated (999),# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,,, +SMK_208,N/A,cont,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]",ICES confirmed,cont,NA::b,N/A,missing,missing,cigarettes,else,else,# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,,, +SMKDSTY_A,SMKDSTY_A_cat6_1,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,1,6,Daily,Daily smoker,N/A,1,Daily,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, +SMKDSTY_A,SMKDSTY_A_cat6_2,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,2,6,Occasional (former daily),Former daily current occasional smoker,N/A,2,Occasional,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, +SMKDSTY_A,SMKDSTY_A_cat6_3,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,3,6,Always occasional,Never daily current occasional smoker,N/A,3,Always occasional,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, +SMKDSTY_A,SMKDSTY_A_cat6_4,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,4,6,Former daily,Former daily current nonsmoker,N/A,4,Former daily,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, +SMKDSTY_A,SMKDSTY_A_cat6_5,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,5,6,Former occasional,Never daily current nonsmoker (former occasional),N/A,5,Former occasional,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, +SMKDSTY_A,SMKDSTY_A_cat6_6,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,6,6,Never smoked,Never smoked,N/A,6,Never smoked,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, +SMKDSTY_A,SMKDSTY_A_cat6_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,NA::a,6,not applicable,not applicable,N/A,96,not applicable,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, +SMKDSTY_A,SMKDSTY_A_cat6_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,NA::b,6,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, +SMKDSTY_A,SMKDSTY_A_cat6_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]",ICES confirmed,cat,NA::b,6,missing,missing,N/A,else,else,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",,, +SMKDSTY_cat5,SMKDSTY_cat5_1,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,1,5,Daily,Current daily smoker,N/A,1,Daily,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, +SMKDSTY_cat5,SMKDSTY_cat5_2,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,2,5,Occasional,Current occasional smoker,N/A,2,Occasional,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, +SMKDSTY_cat5,SMKDSTY_cat5_3,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,3,5,Former daily,Former daily smoker,N/A,3,Former daily,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, +SMKDSTY_cat5,SMKDSTY_cat5_4,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,4,5,Former occasional,Former occasional,N/A,"[4,5]",Former occasional,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never","SMKDSTY_cat5 is a 5 category variable for smoking status for cycles up to 2018. Prior to 2015, 'occasional' and 'always occasional' are combined to form the current 'occasional' category. 2015 onwards, 'former occasional' and 'experimental' are combined to form the current 'former occasional' category",, +SMKDSTY_cat5,SMKDSTY_cat5_5,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,5,5,Never smoked,Never smoked,N/A,6,Never smoked,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, +SMKDSTY_cat5,SMKDSTY_cat5_NA::a,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,NA::a,5,not applicable,not applicable,N/A,96,not applicable,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, +SMKDSTY_cat5,SMKDSTY_cat5_NA::b,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,NA::b,5,missing,missing,N/A,"[97,99]",don't know (97); refusal (98); not stated (99),Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, +SMKDSTY_cat5,SMKDSTY_cat5_NA::b,cat,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, cchs2015_2016_i::SMKDVSTY, cchs2017_2018_i::SMKDVSTY",ICES confirmed,cat,NA::b,5,missing,missing,N/A,else,else,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",,, +SMKG01C_A,SMKG01C_A_cat10_1,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,1,10,5 To 11 Years,age smoked first whole cigarette (5 to 11),years,1,5 To 11 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_2,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,2,10,12 To 14 Years,age smoked first whole cigarette (12 to 14),years,2,12 To 14 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_3,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,3,10,15 To 19 Years,age smoked first whole cigarette (18 to 19),years,3,15 To 19 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_4,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,4,10,20 To 24 Years,age smoked first whole cigarette (20 to 24),years,4,20 To 24 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_5,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,5,10,25 To 29 Years,age smoked first whole cigarette (25 to 29),years,5,25 To 29 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_6,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,6,10,30 To 34 Years,age smoked first whole cigarette (30 to 34),years,6,30 To 34 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_7,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,7,10,35 To 39 Years,age smoked first whole cigarette (35 to 39),years,7,35 To 39 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_8,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,8,10,40 To 44 Years,age smoked first whole cigarette (40 to 44),years,8,40 To 44 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_9,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,9,10,45 To 49 Years,age smoked first whole cigarette (45 to 49),years,9,45 To 49 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_10,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,10,10,50 Years or more,age smoked first whole cigarette (50 plus),years,10,50 Years or more,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,NA::a,10,not applicable,not applicable,years,96,not applicable,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,NA::b,10,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C",ICES altered,cat,NA::b,10,missing,missing,years,else,else,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,1,10,5 To 11 Years,age smoked first whole cigarette (5 to 11),years,"[5,12)",5 To 11 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,2,10,12 To 14 Years,age smoked first whole cigarette (12 to 14),years,"[12,15)",12 To 14 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,3,10,15 To 19 Years,age smoked first whole cigarette (18 to 19),years,"[15,20)",15 To 19 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_4,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,4,10,20 To 24 Years,age smoked first whole cigarette (20 to 24),years,"[20,25)",20 To 24 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_5,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,5,10,25 To 29 Years,age smoked first whole cigarette (25 to 29),years,"[25,30)",25 To 29 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_6,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,6,10,30 To 34 Years,age smoked first whole cigarette (30 to 34),years,"[30,35)",30 To 34 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_7,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,7,10,35 To 39 Years,age smoked first whole cigarette (35 to 39),years,"[35,40)",35 To 39 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_8,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,8,10,40 To 44 Years,age smoked first whole cigarette (40 to 44),years,"[40,45)",40 To 44 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_9,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,9,10,45 To 49 Years,age smoked first whole cigarette (45 to 49),years,"[45,50)",45 To 49 Years,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_10,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,10,10,50 Years or more,age smoked first whole cigarette (50 plus),years,"[50,80]",50 Years or more,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,NA::a,10,not applicable,not applicable,years,996,not applicable,agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,NA::b,10,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agec1,Age smoked first cigarette,,, +SMKG01C_A,SMKG01C_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",ICES altered,cont,NA::b,10,missing,missing,years,else,else,agec1,Age smoked first cigarette,,, +SMKG01C_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]",ICES altered,cont,copy,N/A,agec1,agec1,years,"[5,80]",agec1,agec1,Age smoked first cigarette,,, +SMKG01C_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]",ICES altered,cont,NA::a,N/A,not applicable,not applicable,years,996,not applicable,agec1,Age smoked first cigarette,,, +SMKG01C_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]",ICES altered,cont,NA::b,N/A,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agec1,Age smoked first cigarette,,, +SMKG01C_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMK_01C]",ICES altered,cont,NA::b,N/A,missing,missing,years,else,else,agec1,Age smoked first cigarette,,, +SMKG09C,SMKG09C_cat3_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,1,3,3 to 5 years,3 to 5 years,years,"[3,6)",3 to 5 years,stpdy,Years since stopped smoking daily - former daily,,, +SMKG09C,SMKG09C_cat3_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,2,3,6 to 10 years,6 to 10 years,years,"[6,11)",6 to 10 years,stpdy,Years since stopped smoking daily - former daily,,, +SMKG09C,SMKG09C_cat3_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,3,3,11+ years,11 or more years,years,"[11,82]",11 or more years,stpdy,Years since stopped smoking daily - former daily,,, +SMKG09C,SMKG09C_cat3_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,NA::a,3,not applicable,not applicable,years,996,not applicable,stpdy,Years since stopped smoking daily - former daily,,, +SMKG09C,SMKG09C_cat3_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,NA::b,3,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),stpdy,Years since stopped smoking daily - former daily,,, +SMKG09C,SMKG09C_cat3_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMK_09C]",ICES altered,cat,NA::b,3,missing,missing,years,else,else,stpdy,Years since stopped smoking daily - former daily,,, +SMKG203_A,SMKG203_A_cat10_1,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,1,10,5 To 11 Years,age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_2,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,2,10,12 To 14 Years,age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_3,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,3,10,15 to 19 Years,age (15 to 19) started smoking daily - daily smoker,years,3,15 to 19 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_4,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,4,10,20 To 24 Years,age (20 to 24) started smoking daily - daily smoker,years,4,20 To 24 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_5,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,5,10,25 To 29 Years,age (25 to 29) started smoking daily - daily smoker,years,5,25 To 29 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_6,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,6,10,30 To 34 Years,age (30 to 34) started smoking daily - daily smoker,years,6,30 To 34 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_7,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,7,10,35 To 39 Years,age (35 to 39) started smoking daily - daily smoker,years,7,35 To 39 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_8,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,8,10,40 To 44 Years,age (40 to 44) started smoking daily - daily smoker,years,8,40 To 44 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_9,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,9,10,45 To 49 Years,age (45 to 49) started smoking daily - daily smoker,years,9,45 To 49 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_10,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,10,10,50 Years or more,age (50 or more) started smoking daily - daily smoker,years,10,50 Years or more,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,NA::a,10,not applicable,not applicable,years,96,not applicable,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,NA::b,10,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203",ICES altered,cat,NA::b,10,missing,missing,years,else,else,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,1,10,5 To 11 Years,age (5 to 11) started smoking daily - daily smoker,years,"[5,12)",5 To 11 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,2,10,12 To 14 Years,age (12 to 14) started smoking daily - daily smoker,years,"[12,15)",12 To 14 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,3,10,15 to 19 Years,age (15 to 19) started smoking daily - daily smoker,years,"[15,20)",15 to 19 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_4,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,4,10,20 To 24 Years,age (20 to 24) started smoking daily - daily smoker,years,"[20,25)",20 To 24 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_5,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,5,10,25 To 29 Years,age (25 to 29) started smoking daily - daily smoker,years,"[25,30)",25 To 29 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_6,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,6,10,30 To 34 Years,age (30 to 34) started smoking daily - daily smoker,years,"[30,35)",30 To 34 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_7,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,7,10,35 To 39 Years,age (35 to 39) started smoking daily - daily smoker,years,"[35,40)",35 To 39 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_8,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,8,10,40 To 44 Years,age (40 to 44) started smoking daily - daily smoker,years,"[40,45)",40 To 44 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_9,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,9,10,45 To 49 Years,age (45 to 49) started smoking daily - daily smoker,years,"[45,50)",45 To 49 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_10,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,10,10,50 Years or more,age (50 or more) started smoking daily - daily smoker,years,"[50,84]",50 Years or more,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,NA::a,10,not applicable,not applicable,years,996,not applicable,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,NA::b,10,missing,missing,years,"[997,999]",don't know (97); refusal (98); not stated (99),agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_A,SMKG203_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",ICES altered,cont,NA::b,10,missing,missing,years,else,else,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,8,N/A,agecigd,converted categorical age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,13,N/A,agecigd,converted categorical age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,17,N/A,agecigd,converted categorical age (15 to 19) started smoking daily - daily smoker,years,3,15 to 19 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,22,N/A,agecigd,converted categorical age (20 to 24) started smoking daily - daily smoker,years,4,20 To 24 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,27,N/A,agecigd,converted categorical age (25 to 29) started smoking daily - daily smoker,years,5,25 To 29 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,32,N/A,agecigd,converted categorical age (30 to 34) started smoking daily - daily smoker,years,6,30 To 34 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,37,N/A,agecigd,converted categorical age (35 to 39) started smoking daily - daily smoker,years,7,35 To 39 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,42,N/A,agecigd,converted categorical age (40 to 44) started smoking daily - daily smoker,years,8,40 To 44 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,47,N/A,agecigd,converted categorical age (45 to 49) started smoking daily - daily smoker,years,9,45 To 49 Years,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,55,N/A,agecigd,converted categorical age (50 or more) started smoking daily - daily smoker,years,10,50 Years or more,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,NA::a,N/A,not applicable,not applicable,years,96,not applicable,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,NA::b,N/A,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203 ",ICES altered,cat,NA::b,N/A,missing,missing,years,else,else,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]",ICES altered,cont,copy,N/A,agecigd,agecigd,years,"[5,84]",agecigd,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]",ICES altered,cont,NA::a,N/A,not applicable,not applicable,years,996,not applicable,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]",ICES altered,cont,NA::b,N/A,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG203_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i , cchs2015_2016_i, cchs2017_2018_i"," cchs2003_i::SMKC_203 , cchs2005_i::SMKE_203, cchs2015_2016_i::SMK_040, cchs2017_2018_i::SMK_040, [SMK_203]",ICES altered,cont,NA::b,N/A,missing,missing,years,else,else,agecigd,Age started to smoke daily - daily smoker (G),,, +SMKG207_A,SMKG207_A_cat10_1,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,1,10,5 To 11 Years,age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_2,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,2,10,12 To 14 Years,age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_3,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,3,10,15 to 19 Years,age (15 to 19) started smoking daily - daily smoker,years,3,15 to 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_4,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,4,10,20 To 24 Years,age (20 to 24) started smoking daily - daily smoker,years,4,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_5,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,5,10,25 To 29 Years,age (25 to 29) started smoking daily - daily smoker,years,5,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_6,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,6,10,30 To 34 Years,age (30 to 34) started smoking daily - daily smoker,years,6,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_7,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,7,10,35 To 39 Years,age (35 to 39) started smoking daily - daily smoker,years,7,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_8,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,8,10,40 To 44 Years,age (40 to 44) started smoking daily - daily smoker,years,8,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_9,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,9,10,45 To 49 Years,age (45 to 49) started smoking daily - daily smoker,years,9,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_10,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,10,10,50 Years or more,age (50 or more) started smoking daily - daily smoker,years,10,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_NA::a,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,NA::a,10,not applicable,not applicable,years,96,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,NA::b,10,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_NA::b,cat,"cchs2001_p, cchs2003_p, cchs2001_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207",ICES altered,cat,NA::b,10,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,1,10,5 To 11 Years,age (5 to 11) started smoking daily - daily smoker,years,"[5,12)",5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,2,10,12 To 14 Years,age (12 to 14) started smoking daily - daily smoker,years,"[12,15)",12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,3,10,15 to 19 Years,age (15 to 19) started smoking daily - daily smoker,years,"[15,20)",15 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_4,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,4,10,20 To 24 Years,age (20 to 24) started smoking daily - daily smoker,years,"[20,25)",20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_5,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,5,10,25 To 29 Years,age (25 to 29) started smoking daily - daily smoker,years,"[25,30)",25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_6,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,6,10,30 To 34 Years,age (30 to 34) started smoking daily - daily smoker,years,"[30,35)",30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_7,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,7,10,35 To 39 Years,age (35 to 39) started smoking daily - daily smoker,years,"[35,40)",35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_8,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,8,10,40 To 44 Years,age (40 to 44) started smoking daily - daily smoker,years,"[40,45)",40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_9,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,9,10,45 To 49 Years,age (45 to 49) started smoking daily - daily smoker,years,"[45,50)",45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_10,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,10,10,50 Years or more,age (50 or more) started smoking daily - daily smoker,years,"[50,80]",50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::a,10,not applicable,not applicable,years,996,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::b,10,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_A,SMKG207_A_cat10_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::b,10,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_1,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,1,11,5 To 11 Years,age (5 to 11) started smoking daily - former daily smoker,years,1,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_2,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,2,11,12 To 14 Years,age (12 to 14) started smoking daily - former daily smoker,years,2,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_3,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,3,11,15 To 17 Years,age (15 to 17) started smoking daily - former daily smoker,years,3,15 To 17 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_4,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,4,11,18 To 19 Years,age (18 to 19) started smoking daily - former daily smoker,years,4,18 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_5,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,5,11,20 To 24 Years,age (20 to 24) started smoking daily - former daily smoker,years,5,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_6,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,6,11,25 To 29 Years,age (25 to 29) started smoking daily - former daily smoker,years,6,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_7,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,7,11,30 To 34 Years,age (30 to 34) started smoking daily - former daily smoker,years,7,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_8,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,8,11,35 To 39 Years,age (35 to 39) started smoking daily - former daily smoker,years,8,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_9,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,9,11,40 To 44 Years,age (40 to 44) started smoking daily - former daily smoker,years,9,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_10,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,10,11,45 To 49 Years,age (45 to 49) started smoking daily - former daily smoker,years,10,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_11,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,11,11,50 Years or more,age (50 plus) started smoking daily - former daily smoker,years,11,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_NA::a,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::a,11,not applicable,not applicable,years,96,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_NA::b,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::b,11,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_NA::b,cat,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::b,11,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_1,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,1,11,5 To 11 Years,age (5 to 11) started smoking daily - former daily smoker,years,"[5,12)",5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_2,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,2,11,12 To 14 Years,age (12 to 14) started smoking daily - former daily smoker,years,"[12,15)",12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_3,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,3,11,15 To 17 Years,age (15 to 17) started smoking daily - former daily smoker,years,"[15,18)",15 To 17 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_4,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,4,11,18 To 19 Years,age (18 to 19) started smoking daily - former daily smoker,years,"[18,20)",18 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_5,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,5,11,20 To 24 Years,age (20 to 24) started smoking daily - former daily smoker,years,"[20,25)",20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_6,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,6,11,25 To 29 Years,age (25 to 29) started smoking daily - former daily smoker,years,"[25,30)",25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_7,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,7,11,30 To 34 Years,age (30 to 34) started smoking daily - former daily smoker,years,"[30,35)",30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_8,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,8,11,35 To 39 Years,age (35 to 39) started smoking daily - former daily smoker,years,"[35,40)",35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_9,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,9,11,40 To 44 Years,age (40 to 44) started smoking daily - former daily smoker,years,"[40,45)",40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_10,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,10,11,45 To 49 Years,age (45 to 49) started smoking daily - former daily smoker,years,"[45,50)",45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_11,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,11,11,50 Years or more,age (50 plus) started smoking daily - former daily smoker,years,"[50,80]",50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_NA::a,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,NA::a,11,not applicable,not applicable,years,996,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,NA::b,11,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_B,SMKG207_B_cat11_NA::b,cat,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cat,NA::b,11,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,8,N/A,agecigd,converted categorical age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,13,N/A,agecigd,converted categorical age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,17,N/A,agecigd,converted categorical age (15 to 19) started smoking daily - daily smoker,years,3,15 to 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,22,N/A,agecigd,converted categorical age (20 to 24) started smoking daily - daily smoker,years,4,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,27,N/A,agecigd,converted categorical age (25 to 29) started smoking daily - daily smoker,years,5,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,32,N/A,agecigd,converted categorical age (30 to 34) started smoking daily - daily smoker,years,6,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,37,N/A,agecigd,converted categorical age (35 to 39) started smoking daily - daily smoker,years,7,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,42,N/A,agecigd,converted categorical age (40 to 44) started smoking daily - daily smoker,years,8,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,47,N/A,agecigd,converted categorical age (45 to 49) started smoking daily - daily smoker,years,9,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,55,N/A,agecigd,converted categorical age (50 or more) started smoking daily - daily smoker,years,10,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,NA::a,N/A,not applicable,not applicable,years,96,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,NA::b,N/A,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2001_p, cchs2003_p","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207",,cat,NA::b,N/A,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,8,N/A,agecigd,converted categorical age (5 to 11) started smoking daily - daily smoker,years,1,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,13,N/A,agecigd,converted categorical age (12 to 14) started smoking daily - daily smoker,years,2,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,16,N/A,agecigd,converted categorical age (15 to 17) started smoking daily - daily smoker,years,3,15 To 17 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,18.5,N/A,agecigd,converted categorical age (18 to 19) started smoking daily - daily smoker,years,4,18 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,22,N/A,agecigd,converted categorical age (20 to 24) started smoking daily - daily smoker,years,5,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,27,N/A,agecigd,converted categorical age (25 to 29) started smoking daily - daily smoker,years,6,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,32,N/A,agecigd,converted categorical age (30 to 34) started smoking daily - daily smoker,years,7,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,37,N/A,agecigd,converted categorical age (35 to 39) started smoking daily - daily smoker,years,8,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,42,N/A,agecigd,converted categorical age (40 to 44) started smoking daily - daily smoker,years,9,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,47,N/A,agecigd,converted categorical age (45 to 49) started smoking daily - daily smoker,years,10,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,55,N/A,agecigd,converted categorical age (50 plus) started smoking daily - daily smoker,years,11,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::a,N/A,not applicable,not applicable,years,96,not applicable,agecigfd,Age started to smoke daily - former daily smoker,Missing 2001 Data,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::b,N/A,missing,missing,years,"[97,99]",don't know (97); refusal (98); not stated (99),agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p","cchs2005_p::SMKEG207, [SMKG207]",,cat,NA::b,N/A,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,copy,N/A,agecigd,agecigd,years,"[5,80]",agecigfd,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::a,N/A,not applicable,not applicable,years,996,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::b,N/A,missing,missing,years,"[997,999]",don't know (997); refusal (998); not stated (999),agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",ICES altered,cont,NA::b,N/A,missing,missing,years,else,else,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,Func::SMKG207_fun,N/A,N/A,N/A,N/A,N/A,N/A,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,8,N/A,agecigd,converted categorical age (5 to 11) started smoking daily - daily smoker,years,N/A,5 To 11 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,13,N/A,agecigd,converted categorical age (12 to 14) started smoking daily - daily smoker,years,N/A,12 To 14 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,16,N/A,agecigd,converted categorical age (15 to 17) started smoking daily - daily smoker,years,N/A,15 To 17 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,18.5,N/A,agecigd,converted categorical age (18 to 19) started smoking daily - daily smoker,years,N/A,18 To 19 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,22,N/A,agecigd,converted categorical age (20 to 24) started smoking daily - daily smoker,years,N/A,20 To 24 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,27,N/A,agecigd,converted categorical age (25 to 29) started smoking daily - daily smoker,years,N/A,25 To 29 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,32,N/A,agecigd,converted categorical age (30 to 34) started smoking daily - daily smoker,years,N/A,30 To 34 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,37,N/A,agecigd,converted categorical age (35 to 39) started smoking daily - daily smoker,years,N/A,35 To 39 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,42,N/A,agecigd,converted categorical age (40 to 44) started smoking daily - daily smoker,years,N/A,40 To 44 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,47,N/A,agecigd,converted categorical age (45 to 49) started smoking daily - daily smoker,years,N/A,45 To 49 Years,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,55,N/A,agecigd,converted categorical age (50 plus) started smoking daily - daily smoker,years,N/A,50 Years or more,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,NA::a,N/A,not applicable,not applicable,years,N/A,not applicable,agecigfd,Age started to smoke daily - former daily smoker,,, +SMKG207_cont,N/A,cont,"cchs2015_2016_p, cchs2017_2018_p, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[SMK_030, SMKG040]",,N/A,NA::b,N/A,missing,missing,years,N/A,missing,agecigfd,Age started to smoke daily - former daily smoker,,, \ No newline at end of file diff --git a/inst/extdata/demport/variables_DemPoRT.csv b/inst/extdata/demport/variables_DemPoRT.csv index 0face89..128d4fc 100644 --- a/inst/extdata/demport/variables_DemPoRT.csv +++ b/inst/extdata/demport/variables_DemPoRT.csv @@ -1,70 +1,75 @@ -variable,label,labelLong,section,subject,variableType,units,ICES confirmation,databaseStart,variableStart,description -ADL_01,Help preparing meals,Needs help - preparing meals,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]", -ADL_02,Help appointments/errands,Needs help - getting to appointments/errands,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]", -ADL_03,Help housework,Needs help - doing housework,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]", -ADL_04,Help personal care,Needs help - personal care,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]", -ADL_05,Help move inside house,Needs help - moving about inside house,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]", -ADL_06,Help personal finances,Needs help - looking after finances,Health status,ADL,Categorical,N/A,Yes,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]", -ADL_07,Help heavy household chores,Needs help - heavy household chores,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D", -ADL_der,Derived help tasks,Derived needs help with tasks,Health status,ADL,Categorical,N/A,,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05]", -ADL_score_5,ADL score ,"Derived using the ADL variables common to all cycles from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05) to represent the number of tasks that an individual needs help with.",Health status,ADL,Categorical,N/A,,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05]", -ADL_score_6,ADL score ,"Derived using the ADL variables common to all cycles from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]", -ALCDTTM,Drinker type (last 12 months),Type of drinker (12 months),Health behaviour,Alcohol,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]", -ALCDTYP_A,Former drinker,Type of drinker,Health behaviour,Alcohol,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]", -ALWDWKY,Drinks last week,Weekly consumption of alcohol,Health behaviour,Alcohol,Continuous,drinks/week,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]", -CCC_071,Hypertension,Do you have high blood pressure?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]", -CCC_091,COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]", -CCC_101,Diabetes,Do you have diabetes?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]", -CCC_111,Epilepsy,Do you have epilepsy?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111", -CCC_121,Heart Disease,Do you have heart disease?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]", -CCC_151,Stroke,Do you suffer from effects of stroke?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]", -CCC_280,Mood disorder,Do you have a mood disorder?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]", -DHH_AGE,Age,Age,Demographics,Age,Continuous,Years,Yes,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",Continuous age variable for shared files and ICES -DHH_SEX,Sex,Sex,Demographics,Sex,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]", -DHH_MS,Marital status,Marital status,Sociodemographics,Marital Status,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",Categorical Marital Status -DHH_MS_A,Marital status,Marital status,Sociodemographics,Marital Status,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",Categorical Marital Status with DemPoRt specific categories -EDUDR04,Highest education,Highest level/education - 4 categories,Sociodemographics,Education,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]", -FVCDJUI,Juice consumption,Daily consumption - fruit juice (D),Health behaviour,Diet,Continuous,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]", -FVCDPOT,Potato consumption,Daily consumption - potatoes (D),Health behaviour,Diet,Continuous,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]", -FVCDTOT,Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),Health behaviour,Diet,Continuous,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]", -GEN_01,Self-perceived health,Self-perceived health,Health status,Self-perceived health,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]", -GEN_07,Self-perceived life stress,Self-perceived life stress,Health status,Mental health,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020, cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]", -GEN_10,Sense of belonging,Sense of belonging in the community,Health status,Mental health,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]", -HUI06,HUI Hearing ability - in a group without a hearing aid,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]", -HUI07,HUI Hearing ability - in a group with a hearing aid,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]", -HUI07A,HUI Hearing ability -able to hear,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]", -HUI08,HUI Hearing ability - able to hear in a quiet room without hearing aid,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]", -HUI09,HUI Hearing ability - able to hear in a quiet room with hearing aid,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]", -HWTGBMI,BMI,"BMI / self-report - (D,G)",Health status,BMI,Continuous,kg/m2,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, [HWTGBMI]", -HWTDBMI,BMI,"BMI / self-report - (D,G)",Health status,BMI,Continuous,kg/m2,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADBMI, cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2015_2016_i::HWTDVBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]", -HWTDBMI_der,BMI,"BMI / self-report - (D,G)",Health status,BMI,Continuous,kg/m2,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[HWTDHTM, HWTDWTK]", -HWTDBMI_der_cat4,BMI,"BMI / self-report - (D,G)",Health status,BMI,Categorical,kg/m2,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4, -HWTDHTM,Height,Height (metres)/self-reported - (D),Health status,Height,Continuous,meters,Yes,"cchs_2001_i, cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADHTM, cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]", -HWTDWTK,Weight,Weight - kilograms (D),Health status,Weight,Continuous,kg,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]", -PACFLEI,Leisure physical activites,Leisure physical activity,Health behaviour,Exercise,Categorical,N/A,Yes,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]", -RAC_6D,Needs help - heavy housework,Needs help - heavy housework,Health status,Health status,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D", -SDCFIMM,Immigrant status,Immigrant Status (D),Sociodemographics,Migration,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i cchs2012_s","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]", -SDCGCGT,Ethnicity,"Cultural or racial origin - (D, G)",Sociodemographics,Ethnicity,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]", -SDCDGT_A,Ethnicity,Cultural or racial origin - (D),Sociodemographics,Ethnicity,Categorical,N/A,Yes,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ", -SDCDGT_B,Ethnicity,Cultural origin,Sociodemographics,Ethnicity,Categorical,N/A,Yes,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ", -SLP_02,Trouble sleeping,Freq. - trouble sleeping,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]", -SLP_02_A,Trouble sleeping,Freq. - trouble sleeping,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2001_p, cchs2001_i",[GENA_04], -SLP_03,Sleep refreshing,Freq. - find sleep refreshing,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]", -SLP_03_A,Sleep refreshing,Freq. - find sleep refreshing,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2001_p, cchs2001_i",[GENA_05], -SLPG01_B,Hours sleep,No./hours spent sleeping each night,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01], -SLPG01_C,Hours sleep,No./hours spent sleeping each night,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_009", -SMK_01A,s100,"In lifetime, smoked 100 or more cigarettes",Health behaviour,Smoking,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]", -SMK_05B,cigdayo,# of cigarettes smoked daily - occasional smoker,Health behaviour,Smoking,Continuous,cigarettes,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]", -SMK_05C,Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",Health behaviour,Smoking,Continuous,days,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]", -SMK_09A_cont,stpd,When did you stop smoking daily - former daily,Health behaviour,Smoking,Continuous,Years,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_09A, cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2001_i::SMKA_09A, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]", -SMK_204,cigdayd,# of cigarettes smoked daily - daily smoker,Health behaviour,Smoking,Continuous,cigarettes,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]", -SMK_208,# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,Health behaviour,Smoking,Continuous,cigarettes,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]", -SMKDSTY_A,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",Health behaviour,Smoking,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","2015 onwards for smoke status still has 6 categories, but removed 'always occasional' (Never daily current occasional smoker) and added 'experimental' (at least 1 cig, non-smoker now)" -SMKDSTY_cat5,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",Health behaviour,Smoking,Categorical,N/A,Yes,"cchs2015_2016_p, cchs2017_2018, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, [SMKDSTY]","Re-categorization of SMKDSTY to be used for smoking imputation. SMKDSTY_cat5 is a 5 category variable for smoking status for cycles up to 2018. Prior to 2015, 'occasional' and 'always occasional' are combined to form the current 'occasional' category. 2015 onwards, 'former occasional' and 'experimental' are combined to form the current 'former occasional' category" -SMKG01C_A,agec1,Age smoked first cigarette,Health behaviour,Smoking,Categorical,Years,Yes,"cchs2001_p, cchs2003_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C, cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]", -SMKG01C_cont,agec1,Age smoked first cigarette,Health behaviour,Smoking,Continuous,Years,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2005_p::SMKEG01C, cchs2015_2016_p::SMKG035, cchs2017_2018_p::SMKG035, cchs2009_s::SMK_01C, cchs2010_s::SMK_01C, cchs2012_s::SMK_01C, cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMKG01C]", -SMKG09C,stpdy,Years since stopped smoking daily - former daily,Health behaviour,Smoking,Categorical,Years,Yes,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::SMKCG09C, cchs2005_p::SMKEG09C, cchs2015_2016_p::SMKG090, cchs2017_2018_p::SMKG090, cchs2009_s::SMK_09C, cchs2010_s::SMK_09C, cchs2012_s::SMK_09C, cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMKG09C]", -SMKG203_A,agecigd,Age started to smoke daily - daily smoker (G),Health behaviour,Smoking,Categorical,Years,Yes,"cchs2001_p, cchs2003_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203, cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]", -SMKG203_cont,agecigd,Age started to smoke daily - daily smoker (G),Health behaviour,Smoking,Continuous,Years,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2005_p::SMKEG203, cchs2009_s::SMK_203, cchs2010_s::SMK_203, cchs2012_s::SMK_203, cchs2001_i::SMKAG203, [SMKG203], DerivedVar::[SMK_005, SMKG040]", -SMKG207_A,agecigfd,Age started to smoke daily - former daily smoker,Health behaviour,Smoking,Categorical,Years,Yes,"cchs2001_p, cchs2003_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207, cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]", -SMKG207_cont,agecigfd,Age started to smoke daily - former daily smoker,Health behaviour,Smoking,Continuous,Years,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2005_p::SMKEG207, cchs2009_s::SMK_207, cchs2010_s::SMK_207, cchs2012_s::SMK_207, cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMKG207], DerivedVar::[SMK_030, SMKG040]", \ No newline at end of file +"variable","label","labelLong","section","subject","variableType","units","ICES confirmation","databaseStart","variableStart","description","role","uid","position" +"ADL_01","Help preparing meals","Needs help - preparing meals","Health status","ADL","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]",,"predictor,enabled","v_001",10 +"ADL_02","Help appointments/errands","Needs help - getting to appointments/errands","Health status","ADL","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]",,"predictor,enabled","v_002",20 +"ADL_03","Help housework","Needs help - doing housework","Health status","ADL","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]",,"predictor,enabled","v_003",30 +"ADL_04","Help personal care","Needs help - personal care","Health status","ADL","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]",,"predictor,enabled","v_004",40 +"ADL_05","Help move inside house","Needs help - moving about inside house","Health status","ADL","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]",,"predictor,enabled","v_005",50 +"ADL_06","Help personal finances","Needs help - looking after finances","Health status","ADL","Categorical",,"Yes","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]",,"predictor,enabled","v_006",60 +"ADL_07","Help heavy household chores","Needs help - heavy household chores","Health status","ADL","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",,"predictor,enabled","v_007",70 +"ADL_der","Derived help tasks","Derived needs help with tasks","Health status","ADL","Categorical",,,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05]",,"derived,enabled","v_008",80 +"ADL_score_5","ADL score ","Derived using the ADL variables common to all cycles from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05) to represent the number of tasks that an individual needs help with.","Health status","ADL","Categorical",,,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05]",,"derived,enabled","v_009",90 +"ADL_score_6","ADL score ","Derived using the ADL variables common to all cycles from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.","Health status","ADL","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]",,"derived,enabled","v_010",100 +"ALCDTTM","Drinker type (last 12 months)","Type of drinker (12 months)","Health behaviour","Alcohol","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",,"predictor,enabled","v_011",110 +"ALCDTYP_A","Former drinker","Type of drinker","Health behaviour","Alcohol","Categorical",,"Yes","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]",,"predictor,enabled","v_012",120 +"ALWDWKY","Drinks last week","Weekly consumption of alcohol","Health behaviour","Alcohol","Continuous","drinks/week","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]",,"predictor,enabled","v_013",130 +"CCC_071","Hypertension","Do you have high blood pressure?","Health status","Chronic condition","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]",,"predictor,enabled","v_014",140 +"CCC_091","COPD/Emphysema/Bronchitis","Do you have COPD (eg bronchitis, emphysema)?","Health status","Chronic condition","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]",,"predictor,enabled","v_015",150 +"CCC_101","Diabetes","Do you have diabetes?","Health status","Chronic condition","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]",,"predictor,enabled","v_016",160 +"CCC_111","Epilepsy","Do you have epilepsy?","Health status","Chronic condition","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111",,"predictor,enabled","v_017",170 +"CCC_121","Heart Disease","Do you have heart disease?","Health status","Chronic condition","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]",,"predictor,enabled","v_018",180 +"CCC_151","Stroke","Do you suffer from effects of stroke?","Health status","Chronic condition","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]",,"predictor,enabled","v_019",190 +"CCC_280","Mood disorder","Do you have a mood disorder?","Health status","Chronic condition","Categorical",,"Yes","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]",,"predictor,enabled","v_020",200 +"DHH_AGE","Age","Age","Demographics","Age","Continuous","Years","Yes","cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]","Continuous age variable for shared files and ICES","predictor,enabled","v_021",210 +"DHH_SEX","Sex","Sex","Demographics","Sex","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]",,"predictor,enabled","v_022",220 +"DHH_MS","Marital status","Marital status","Sociodemographics","Marital Status","Categorical",,"Yes","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","Categorical Marital Status","predictor,enabled","v_023",230 +"DHH_MS_A","Marital status","Marital status","Sociodemographics","Marital Status","Categorical",,"Yes","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]","Categorical Marital Status with DemPoRt specific categories","predictor,enabled","v_024",240 +"EDUDR04","Highest education","Highest level/education - 4 categories","Sociodemographics","Education","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]",,"predictor,enabled","v_025",250 +"FVCDJUI","Juice consumption","Daily consumption - fruit juice (D)","Health behaviour","Diet","Continuous",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]",,"predictor,enabled","v_026",260 +"FVCDPOT","Potato consumption","Daily consumption - potatoes (D)","Health behaviour","Diet","Continuous",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]",,"predictor,enabled","v_027",270 +"FVCDTOT","Total fruit/veg consumption","Daily consumptoin - total fruits and veg. - (D)","Health behaviour","Diet","Continuous",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]",,"predictor,enabled","v_028",280 +"GEN_01","Self-perceived health","Self-perceived health","Health status","Self-perceived health","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]",,"predictor,enabled","v_029",290 +"GEN_07","Self-perceived life stress","Self-perceived life stress","Health status","Mental health","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020, cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]",,"predictor,enabled","v_030",300 +"GEN_10","Sense of belonging","Sense of belonging in the community","Health status","Mental health","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]",,"predictor,enabled","v_031",310 +"HUI06","HUI Hearing ability - in a group without a hearing aid","Hearing ability ","Health status","Health utility index","Categorical",,"Yes","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]",,"predictor,enabled","v_032",320 +"HUI07","HUI Hearing ability - in a group with a hearing aid","Hearing ability ","Health status","Health utility index","Categorical",,"Yes","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]",,"predictor,enabled","v_033",330 +"HUI07A","HUI Hearing ability -able to hear","Hearing ability ","Health status","Health utility index","Categorical",,"Yes","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]",,"predictor,enabled","v_034",340 +"HUI08","HUI Hearing ability - able to hear in a quiet room without hearing aid","Hearing ability ","Health status","Health utility index","Categorical",,"Yes","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",,"predictor,enabled","v_035",350 +"HUI09","HUI Hearing ability - able to hear in a quiet room with hearing aid","Hearing ability ","Health status","Health utility index","Categorical",,"Yes","cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]",,"predictor,enabled","v_036",360 +"HWTGBMI","BMI","BMI / self-report - (D,G)","Health status","BMI","Continuous","kg/m2","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, [HWTGBMI]",,"predictor,enabled","v_037",370 +"HWTDBMI","BMI","BMI / self-report - (D,G)","Health status","BMI","Continuous","kg/m2","Yes","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADBMI, cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2015_2016_i::HWTDVBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]",,"predictor,enabled","v_038",380 +"HWTDBMI_der","BMI","BMI / self-report - (D,G)","Health status","BMI","Continuous","kg/m2","Yes","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[HWTDHTM, HWTDWTK]",,"derived,enabled","v_039",390 +"HWTDBMI_der_cat4","BMI","BMI / self-report - (D,G)","Health status","BMI","Categorical","kg/m2","Yes","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::HWTDBMI_der_cat4",,"derived,enabled","v_040",400 +"HWTDHTM","Height","Height (metres)/self-reported - (D)","Health status","Height","Continuous","meters","Yes","cchs_2001_i, cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADHTM, cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]",,"predictor,enabled","v_041",410 +"HWTDWTK","Weight","Weight - kilograms (D)","Health status","Weight","Continuous","kg","Yes","cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]",,"predictor,enabled","v_042",420 +"PACFLEI","Leisure physical activites","Leisure physical activity","Health behaviour","Exercise","Categorical",,"Yes","cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]",,"predictor,enabled","v_043",430 +"RAC_6D","Needs help - heavy housework","Needs help - heavy housework","Health status","Health status","Categorical",,"Yes","cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D",,"predictor,enabled","v_044",440 +"SDCFIMM","Immigrant status","Immigrant Status (D)","Sociodemographics","Migration","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i cchs2012_s","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]",,"predictor,enabled","v_045",450 +"SDCGCGT","Ethnicity","Cultural or racial origin - (D, G)","Sociodemographics","Ethnicity","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]",,"predictor,enabled","v_046",460 +"SDCDGT_A","Ethnicity","Cultural or racial origin - (D)","Sociodemographics","Ethnicity","Categorical",,"Yes","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",,"predictor,enabled","v_047",470 +"SDCDGT_B","Ethnicity","Cultural origin","Sociodemographics","Ethnicity","Categorical",,"Yes","cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ",,"predictor,enabled","v_048",480 +"SLP_02","Trouble sleeping","Freq. - trouble sleeping","Health behaviour","Sleep","Categorical",,"Yes","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]",,"predictor,enabled","v_049",490 +"SLP_02_A","Trouble sleeping","Freq. - trouble sleeping","Health behaviour","Sleep","Categorical",,"Yes","cchs2001_p, cchs2001_i","[GENA_04]",,"predictor,enabled","v_050",500 +"SLP_03","Sleep refreshing","Freq. - find sleep refreshing","Health behaviour","Sleep","Categorical",,"Yes","cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]",,"predictor,enabled","v_051",510 +"SLP_03_A","Sleep refreshing","Freq. - find sleep refreshing","Health behaviour","Sleep","Categorical",,"Yes","cchs2001_p, cchs2001_i","[GENA_05]",,"predictor,enabled","v_052",520 +"SLPG01_B","Hours sleep","No./hours spent sleeping each night","Health behaviour","Sleep","Categorical",,"Yes","cchs2011_2012_i, cchs2013_2014_i","[SLPG01]",,"predictor,enabled","v_053",530 +"SLPG01_C","Hours sleep","No./hours spent sleeping each night","Health behaviour","Sleep","Categorical",,"Yes","cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_009",,"predictor,enabled","v_054",540 +"SMK_01A","s100","In lifetime, smoked 100 or more cigarettes","Health behaviour","Smoking","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]",,"predictor,enabled","v_055",550 +"SMK_05B","cigdayo","# of cigarettes smoked daily - occasional smoker","Health behaviour","Smoking","Continuous","cigarettes","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]",,"predictor,enabled","v_056",560 +"SMK_05C","Number of days - smoked 1 cigarette or more (occ. smoker)","In the past month, on how many days have you smoked 1 or more cigarettes?","Health behaviour","Smoking","Continuous","days","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]",,"predictor,enabled","v_057",570 +"SMK_09A_cont","stpd","When did you stop smoking daily - former daily","Health behaviour","Smoking","Continuous","Years","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_09A, cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2001_i::SMKA_09A, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]",,"predictor,enabled","v_058",580 +"SMK_204","cigdayd","# of cigarettes smoked daily - daily smoker","Health behaviour","Smoking","Continuous","cigarettes","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]",,"predictor,enabled","v_059",590 +"SMK_208","# of cigarettes smoke each day - former daily","# of cigarettes smoked each day - former daily smoker","Health behaviour","Smoking","Continuous","cigarettes","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]",,"predictor,enabled","v_060",600 +"SMKDSTY_A","Smoking status","Type of smoker: daily, occasional, always occasional, former daily, former occasional, never","Health behaviour","Smoking","Categorical",,"Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","2015 onwards for smoke status still has 6 categories, but removed 'always occasional' (Never daily current occasional smoker) and added 'experimental' (at least 1 cig, non-smoker now)","predictor,enabled","v_061",610 +"SMKDSTY_cat5","Smoking status","Type of smoker: daily, occasional, former daily, former occasional, never","Health behaviour","Smoking","Categorical",,"Yes","cchs2015_2016_p, cchs2017_2018, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, [SMKDSTY]","Re-categorization of SMKDSTY to be used for smoking imputation. SMKDSTY_cat5 is a 5 category variable for smoking status for cycles up to 2018. Prior to 2015, 'occasional' and 'always occasional' are combined to form the current 'occasional' category. 2015 onwards, 'former occasional' and 'experimental' are combined to form the current 'former occasional' category","predictor,enabled","v_062",620 +"SMKG01C_A","agec1","Age smoked first cigarette","Health behaviour","Smoking","Categorical","Years","Yes","cchs2001_p, cchs2003_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C, cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]",,"predictor,enabled","v_063",630 +"SMKG01C_cont","agec1","Age smoked first cigarette","Health behaviour","Smoking","Continuous","Years","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2005_p::SMKEG01C, cchs2015_2016_p::SMKG035, cchs2017_2018_p::SMKG035, cchs2009_s::SMK_01C, cchs2010_s::SMK_01C, cchs2012_s::SMK_01C, cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMKG01C]",,"predictor,enabled","v_064",640 +"SMKG09C","stpdy","Years since stopped smoking daily - former daily","Health behaviour","Smoking","Categorical","Years","Yes","cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::SMKCG09C, cchs2005_p::SMKEG09C, cchs2015_2016_p::SMKG090, cchs2017_2018_p::SMKG090, cchs2009_s::SMK_09C, cchs2010_s::SMK_09C, cchs2012_s::SMK_09C, cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMKG09C]",,"predictor,enabled","v_065",650 +"SMKG203_A","agecigd","Age started to smoke daily - daily smoker (G)","Health behaviour","Smoking","Categorical","Years","Yes","cchs2001_p, cchs2003_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203, cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]",,"predictor,enabled","v_066",660 +"SMKG203_cont","agecigd","Age started to smoke daily - daily smoker (G)","Health behaviour","Smoking","Continuous","Years","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2005_p::SMKEG203, cchs2009_s::SMK_203, cchs2010_s::SMK_203, cchs2012_s::SMK_203, cchs2001_i::SMKAG203, [SMKG203], DerivedVar::[SMK_005, SMKG040]",,"predictor,enabled","v_067",670 +"SMKG207_A","agecigfd","Age started to smoke daily - former daily smoker","Health behaviour","Smoking","Categorical","Years","Yes","cchs2001_p, cchs2003_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207, cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]",,"predictor,enabled","v_068",680 +"SMKG207_cont","agecigfd","Age started to smoke daily - former daily smoker","Health behaviour","Smoking","Continuous","Years","Yes","cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2005_p::SMKEG207, cchs2009_s::SMK_207, cchs2010_s::SMK_207, cchs2012_s::SMK_207, cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMKG207], DerivedVar::[SMK_030, SMKG040]",,"predictor,enabled","v_069",690 +"birth_date","Birth date","Date of birth","Demographics","Age","Continuous","date","Yes","ices","[birth_date]","Date of birth for age calculation","index-date,enabled","v_070",700 +"interview_date","Interview date","Baseline interview date","Study design","Accrual","Continuous","date","Yes","ices","[interview_date]","Baseline interview date (cohort entry)","index-date,enabled","v_071",710 +"death_date","Death date","Date of death","Outcomes","Mortality","Continuous","date","Yes","ices","[death_date]","Date of death from vital statistics","outcome-date,enabled","v_072",720 +"dementia_onset_date","Dementia onset","Date of dementia diagnosis","Outcomes","Dementia","Continuous","date","Yes","ices","[dementia_onset_date]","Date of dementia diagnosis","outcome-date,enabled","v_073",730 +"censor_date","Censor date","Administrative censoring date","Outcomes","Censoring","Continuous","date","Yes","ices","[censor_date]","Administrative censoring date","outcome-date,enabled","v_074",740 diff --git a/inst/extdata/demport/variables_DemPoRT.csv.bak b/inst/extdata/demport/variables_DemPoRT.csv.bak new file mode 100644 index 0000000..0face89 --- /dev/null +++ b/inst/extdata/demport/variables_DemPoRT.csv.bak @@ -0,0 +1,70 @@ +variable,label,labelLong,section,subject,variableType,units,ICES confirmation,databaseStart,variableStart,description +ADL_01,Help preparing meals,Needs help - preparing meals,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, cchs2005_p::RACE_6A, cchs2007_2008_p::RAC_6A, cchs2015_2016_p::ADL_005, cchs2017_2018_p::ADL_005, cchs2001_i::RACA_6A, cchs2003_i::RACC_6A, cchs2005_i::RACE_6A, [ADL_01]", +ADL_02,Help appointments/errands,Needs help - getting to appointments/errands,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6B, cchs2003_p::RACC_6B1, cchs2005_p::RACE_6B1, cchs2007_2008_p::RAC_6B1, cchs2001_i::RACA_6B, cchs2003_i::RACC_6B1, cchs2005_i::RACE_6B1, cchs2007_2008_i::RAC_6B1, [ADL_02]", +ADL_03,Help housework,Needs help - doing housework,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6C, cchs2003_p::RACC_6C, cchs2005_p::RACE_6C, cchs2007_2008_p::RAC_6C, cchs2001_i::RACA_6C, cchs2003_i::RACC_6C, cchs2005_i::RACE_6C, cchs2007_2008_i::RAC_6C,[ADL_03]", +ADL_04,Help personal care,Needs help - personal care,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6E, cchs2003_p::RACC_6E, cchs2005_p::RACE_6E, cchs2007_2008_p::RAC_6E, cchs2001_i::RACA_6E, cchs2003_i::RACC_6E, cchs2005_i::RACE_6E, cchs2007_2008_i::RAC_6E,[ADL_04]", +ADL_05,Help move inside house,Needs help - moving about inside house,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::RACA_6F, cchs2003_p::RACC_6F, cchs2005_p::RACE_6F, cchs2007_2008_p::RAC_6F, cchs2001_i::RACA_6F, cchs2003_i::RACC_6F, cchs2005_i::RACE_6F, cchs2007_2008_i::RAC_6F,[ADL_05]", +ADL_06,Help personal finances,Needs help - looking after finances,Health status,ADL,Categorical,N/A,Yes,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2003_p::RACC_6G, cchs2005_p::RACE_6G, cchs2007_2008_p::RAC_6G, cchs2003_i::RACC_6G, cchs2005_i::RACE_6G, cchs2007_2008_i::RAC_6G, [ADL_06]", +ADL_07,Help heavy household chores,Needs help - heavy household chores,Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::RACA_6D, cchs2003_p::RACC_6D, cchs2005_p::RACE_6D, cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D", +ADL_der,Derived help tasks,Derived needs help with tasks,Health status,ADL,Categorical,N/A,,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05]", +ADL_score_5,ADL score ,"Derived using the ADL variables common to all cycles from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05) to represent the number of tasks that an individual needs help with.",Health status,ADL,Categorical,N/A,,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05]", +ADL_score_6,ADL score ,"Derived using the ADL variables common to all cycles from 2001 to 2014 (ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06) to represent the number of tasks that an individual needs help with.",Health status,ADL,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","DerivedVar::[ADL_01, ADL_02, ADL_03, ADL_04, ADL_05, ADL_06]", +ALCDTTM,Drinker type (last 12 months),Type of drinker (12 months),Health behaviour,Alcohol,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADTYP, cchs2003_p::ALCCDTYP, cchs2005_p::ALCEDTYP, cchs2015_2016_p::ALCDVTTM, cchs2017_2018_p::ALCDVTTM, cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]", +ALCDTYP_A,Former drinker,Type of drinker,Health behaviour,Alcohol,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, 2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::ALCADTYP, cchs2003_i::ALCCDTYP, cchs2005_i::ALCEDTYP, cchs2015_2016_i::ALCDVTTM, cchs2017_2018_i::ALCDVTTM, [ALCDTTM]", +ALWDWKY,Drinks last week,Weekly consumption of alcohol,Health behaviour,Alcohol,Continuous,drinks/week,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::ALCADWKY, cchs2003_p::ALCCDWKY, cchs2005_p::ALCEDWKY, cchs2015_2016_p::ALWDVWKY, cchs2017_2018_p::ALWDVWKY, cchs2001_i::ALCADWKY, cchs2003_i::ALCCDWKY, cchs2005_i:: ALCEDWKY, cchs2015_2016_i::ALWDVWKY, cchs2017_2018_i::ALWDVWKY, [ALWDWKY]", +CCC_071,Hypertension,Do you have high blood pressure?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2001_p::CCCA_071, cchs2003_p::CCCC_071, cchs2005_p::CCCE_071, cchs2015_2016_p::CCC_065, cchs2017_2018_p::CCC_065, cchs2001_i::CCCA_071, cchs2003_i::CCCC_071, cchs2005_i::CCCE_071, cchs2015_2016_i::CCC_065, cchs2017_2018_i::CCC_065,[CCC_071]", +CCC_091,COPD/Emphysema/Bronchitis,"Do you have COPD (eg bronchitis, emphysema)?",Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_91B, cchs2003_p::CCCC_91B, cchs2015_2016_p::CCC_030, cchs2017_2018_p::CCC_030, cchs2001_i::CCCA_91B, cchs2003_i::CCCC_91B, cchs2005_i::CCCE_91F, cchs2007_2008_i::CCC_91F, cchs2015_2016_i::CCC_030, cchs2017_2018_i::CCC_030, [CCC_091]", +CCC_101,Diabetes,Do you have diabetes?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_101, cchs2003_p::CCCC_101, cchs2005_p::CCCE_101, cchs2015_2016_p::CCC_095, cchs2017_2018_p::CCC_095, cchs2001_i::CCCA_101, cchs2003_i::CCCC_101, cchs2005_i::CCCE_101, cchs2015_2016_i::CCC_095, cchs2017_2018_i::CCC_095,[CCC_101]", +CCC_111,Epilepsy,Do you have epilepsy?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_p::CCCA_111, cchs2003_p::CCCC_111, cchs2005_p::CCCE_111, cchs2001_i::CCCA_111, cchs2003_i::CCCC_111, cchs2005_i::CCCE_111", +CCC_121,Heart Disease,Do you have heart disease?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_121, cchs2003_p::CCCC_121, cchs2005_p::CCCE_121, cchs2015_2016_p::CCC_085, cchs2017_2018_p::CCC_085, cchs2001_i::CCCA_121, cchs2003_i::CCCC_121, cchs2005_i::CCCE_121, cchs2015_2016_i::CCC_085, cchs2017_2018_i::CCC_085,[CCC_121]", +CCC_151,Stroke,Do you suffer from effects of stroke?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, ccsh2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::CCCA_151, cchs2003_p::CCCC_151, cchs2005_p::CCCE_151, cchs2015_2016_p::CCC_090, cchs2017_2018_p::CCC_090, cchs2001_i::CCCA_151, cchs2003_i::CCCC_151, cchs2005_i::CCCE_151, cchs2015_2016_i::CCC_090, cchs2017_2018_i::CCC_090,[CCC_151]", +CCC_280,Mood disorder,Do you have a mood disorder?,Health status,Chronic condition,Categorical,N/A,Yes,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::CCCC_280, cchs2005_p::CCCE_280, cchs2015_2016_p::CCC_195, cchs2017_2018_p::CCC_195, cchs2003_i::CCCC_280, cchs2005_i::CCCE_280, cchs2015_2016_i::CCC_195, cchs2017_2018_i::CCC_195, [CCC_280]", +DHH_AGE,Age,Age,Demographics,Age,Continuous,Years,Yes,"cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_AGE, cchs2003_i::DHHC_AGE, cchs2005_i::DHHE_AGE, [DHH_AGE]",Continuous age variable for shared files and ICES +DHH_SEX,Sex,Sex,Demographics,Sex,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::DHHA_SEX, cchs2003_p::DHHC_SEX, cchs2005_p::DHHE_SEX, cchs2001_i::DHHA_SEX, cchs2003_i::DHHC_SEX, cchs2005_i::DHHE, [DHH_SEX]", +DHH_MS,Marital status,Marital status,Sociodemographics,Marital Status,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",Categorical Marital Status +DHH_MS_A,Marital status,Marital status,Sociodemographics,Marital Status,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::DHHA_MS, cchs2003_i::DHHC_MS, cchs2005_i::DHHE_MS, [DHH_MS]",Categorical Marital Status with DemPoRt specific categories +EDUDR04,Highest education,Highest level/education - 4 categories,Sociodemographics,Education,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::EDUADR04, cchs2003_p::EDUCDR04, cchs2005_p::EDUEDR04, cchs2001_i::EDUADR04, cchs2003_i::EDUCDR04, cchs2005_i::EDUEDR04, cchs2015_2016_i::EHG2DVR3, cchs2017_2018_i::EHG2DVR3, [EDUDR04]", +FVCDJUI,Juice consumption,Daily consumption - fruit juice (D),Health behaviour,Diet,Continuous,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADJUI, cchs2003_p::FVCCDJUI, cchs2005_p::FVCEDJUI, cchs2015_2016_p::FVCDVJUI, cchs2017_2018_p::FVCDVJUI, cchs2001_i::FVCADJUI, cchs2003_i::FVCCDJUI, cchs2005_i::FVCEDJUI, cchs2015_2016_i::FVCDVJUI, [FVCDJUI]", +FVCDPOT,Potato consumption,Daily consumption - potatoes (D),Health behaviour,Diet,Continuous,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADPOT, cchs2003_p::FVCCDPOT, cchs2005_p::FVCEDPOT, cchs2015_2016_p::FVCDVPOT, cchs2017_2018_p::FVCDVPOT,cchs2001_i::FVCADPOT, cchs2003_i::FVCCDPOT, cchs2005_i::FVCEDPOT, cchs2015_2016_i::FVCDVPOT, [FVCDPOT]", +FVCDTOT,Total fruit/veg consumption,Daily consumptoin - total fruits and veg. - (D),Health behaviour,Diet,Continuous,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs20013_2014_i, cchs2015_2016_i","cchs2001_p::FVCADTOT, cchs2003_p::FVCCDTOT, cchs2005_p::FVCEDTOT, cchs2015_2016_p::FVCDVTOT, cchs2017_2018_p::FVCDVTOT, cchs2001_i::FVCADTOT, cchs2003_i::FVCCDTOT, cchs2005_i::FVCEDTOT, cchs2015_2016_i::FVCDVTOT,[FVCDTOT]", +GEN_01,Self-perceived health,Self-perceived health,Health status,Self-perceived health,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_01, cchs2003_p::GENC_01, cchs2005_p::GENE_01, cchs2015_2016_p::GEN_005, cchs2017_2018_p::GEN_005, cchs2001_i::GENA_i, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_005, cchs2017_2018_i::GEN_005, [GEN_01]", +GEN_07,Self-perceived life stress,Self-perceived life stress,Health status,Mental health,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_07, cchs2003_p::GENC_07, cchs2005_p::GENE_07, cchs2015_2016_p::GEN_020, cchs2017_2018_p:: GEN_020, cchs2001_i::GENA_07, cchs2003_i::GENC_07, cchs2005_i::GENE_07, cchs2015_2016_i::GEN_020, cchs2017_2018_i:: GEN_020, [GEN_07]", +GEN_10,Sense of belonging,Sense of belonging in the community,Health status,Mental health,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::GENA_10, cchs2003_p::GENC_10, cchs2005_p::GENE_10, cchs2015_2016_p::GEN_030, cchs2017_2018_p::GEN_030, cchs2001_i::GENA_01, cchs2003_i::GENC_01, cchs2005_i::GENE_01, cchs2015_2016_i::GEN_030, cchs2017_2018_i::GEN_030, [GEN_10]", +HUI06,HUI Hearing ability - in a group without a hearing aid,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_06, cchs2003_i::HUAC_06, [HUI_06]", +HUI07,HUI Hearing ability - in a group with a hearing aid,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_07, cchs2003_i::HUIC_07, [HUI_07]", +HUI07A,HUI Hearing ability -able to hear,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i, cchs_2017_2018_i","cchs2001_i::HUIA_07A, cchs2003_i::HUIC_07A, cchs2017_2018_i::WDM_101, [HUI_07A]", +HUI08,HUI Hearing ability - able to hear in a quiet room without hearing aid,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]", +HUI09,HUI Hearing ability - able to hear in a quiet room with hearing aid,Hearing ability ,Health status,Health utility index,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs_2009_2010_i, cchs2013_2014_i","cchs2001_i::HUIA_08, cchs2003_i::HUIC_08, [HUI_08]", +HWTGBMI,BMI,"BMI / self-report - (D,G)",Health status,BMI,Continuous,kg/m2,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::HWTAGBMI, cchs2003_p::HWTCGBMI, cchs2005_p::HWTEGBMI, cchs2015_2016_p::HWTDGBMI, cchs2017_2018_p::HWTDGBMI, cchs2009_s::HWTDBMI, cchs2010_s::HWTDBMI, cchs2012_s::HWTDBMI, cchs2001_i::HWTAGBMI, [HWTGBMI]", +HWTDBMI,BMI,"BMI / self-report - (D,G)",Health status,BMI,Continuous,kg/m2,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADBMI, cchs2003_i::HWTCDBMI, cchs2005_i::HWTEDBMI, cchs2015_2016_i::HWTDVBMI, cchs2017_2018_i::HWTDVBMI, [HWTDBMI]", +HWTDBMI_der,BMI,"BMI / self-report - (D,G)",Health status,BMI,Continuous,kg/m2,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","DerivedVar::[HWTDHTM, HWTDWTK]", +HWTDBMI_der_cat4,BMI,"BMI / self-report - (D,G)",Health status,BMI,Categorical,kg/m2,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i",DerivedVar::HWTDBMI_der_cat4, +HWTDHTM,Height,Height (metres)/self-reported - (D),Health status,Height,Continuous,meters,Yes,"cchs_2001_i, cchs_2003_i, cchs_2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADHTM, cchs_2003_i::HWTCDHTM, cchs_2005_i::HWTEDHTM, 2015_2016_i::HWTDVHTM, cchs2017_2018_i::HTWDVHTM, [HWTDHTM]", +HWTDWTK,Weight,Weight - kilograms (D),Health status,Weight,Continuous,kg,Yes,"cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, ccsh2015_2016_i, cchs2017_2018_i","cchs2001_i::HWTADWTK, cchs2003_i::HWTCDWTK, cchs2005_i::HWTEDWTK, cchs2015_2016_i::HWTDVWTK, cchs2017_2018_i::HWTDVWTK, [HWTDWTK]", +PACFLEI,Leisure physical activites,Leisure physical activity,Health behaviour,Exercise,Categorical,N/A,Yes,"cchs2001_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_i::PACAFLEI, cchs2005_i::PACEFLEI, [PACFLEI]", +RAC_6D,Needs help - heavy housework,Needs help - heavy housework,Health status,Health status,Categorical,N/A,Yes,"cchs2001_i, cchs2003_i, cchs2005_i","cchs2001_i::RACA_6D, cchs2003_i::RACC_6D, cchs2005_i::RACE_6D", +SDCFIMM,Immigrant status,Immigrant Status (D),Sociodemographics,Migration,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i cchs2012_s","cchs2001_p::SDCAFIMM, cchs2003_p::SDCCFIMM, cchs2005_p::SDCEFIMM, cchs2015_2016_p::SDCDVIMM, cchs2017_2018_p::SDCDVIMM, cchs2001_i::SDCAFIMM, cchs2003_i::SDCCFIMM, cchs2005_i::SDCEFIMM, cchs2015_2016::SDCDVIMM, cchs2017_2018_i::SDCDVIMM, [SDCFIMM]", +SDCGCGT,Ethnicity,"Cultural or racial origin - (D, G)",Sociodemographics,Ethnicity,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2001_i, cchs2005_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SDCAGRAC, cchs2003_p::SDCCGRAC, cchs2005_p::SDCEGCGT, cchs2015_2016_p::SDCDGCGT, cchs2017_2018_p::SDCDGCGT, cchs2001_i::SDCAGRAC, cchs2003_i::SDCCDRAC, cchs_2005_i:: SDCEGCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCGCGT]", +SDCDGT_A,Ethnicity,Cultural or racial origin - (D),Sociodemographics,Ethnicity,Categorical,N/A,Yes,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i ","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ", +SDCDGT_B,Ethnicity,Cultural origin,Sociodemographics,Ethnicity,Categorical,N/A,Yes,"cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_i::SDCCDRAC, cchs2005_i::SDCEDCGT, cchs2015_2016_i::SDCDVCGT, cchs2017_2018_i::SDCDVCGT, [SDCDCGT] ", +SLP_02,Trouble sleeping,Freq. - trouble sleeping,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_010, cchs2017_2018_p::SLP_010, cchs2015_2016_i::SLP_010, [SLP_02]", +SLP_02_A,Trouble sleeping,Freq. - trouble sleeping,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2001_p, cchs2001_i",[GENA_04], +SLP_03,Sleep refreshing,Freq. - find sleep refreshing,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2007_2008_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2012_s, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i","cchs2015_2016_p::SLP_015, cchs2017_2018_p::SLP_015, cchs2015_2016_i::SLP_015, [SLP_03]", +SLP_03_A,Sleep refreshing,Freq. - find sleep refreshing,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2001_p, cchs2001_i",[GENA_05], +SLPG01_B,Hours sleep,No./hours spent sleeping each night,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2011_2012_i, cchs2013_2014_i",[SLPG01], +SLPG01_C,Hours sleep,No./hours spent sleeping each night,Health behaviour,Sleep,Categorical,N/A,Yes,"cchs2001_i, cchs2015_2016_i","cchs2001_i::GENA_03, cchs2015_2016_i::SLP_009", +SMK_01A,s100,"In lifetime, smoked 100 or more cigarettes",Health behaviour,Smoking,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_01A, cchs2003_p::SMKC_01A, cchs2005_p::SMKE_01A, cchs2015_2016_p::SMK_020, cchs2017_2018_p::SMK_020, cchs2001_i::SMKA_01A, cchs2003_i::SMKC_01A, cchs2005_i::SMKE_01A, cchs2015_2016_i::SMK_020, cchs2017_2018_i::SMK_020, [SMK_01A]", +SMK_05B,cigdayo,# of cigarettes smoked daily - occasional smoker,Health behaviour,Smoking,Continuous,cigarettes,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05B, cchs2003_p::SMKC_05B, cchs2005_p::SMKE_05B, cchs2015_2016_p::SMK_050, cchs2017_2018_p::SMK_050, [SMK_05B], cchs2001_1::SMKA_05B, cchs2003_i::SMKC_05B, cchs2005_i::SMKE_05B, cchs2015_2016_i::SMK_050, cchs2017_2018_i::SMK_050, [SMK_05B]", +SMK_05C,Number of days - smoked 1 cigarette or more (occ. smoker),"In the past month, on how many days have you smoked 1 or more cigarettes?",Health behaviour,Smoking,Continuous,days,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_05C, cchs2003_p::SMKC_05C, cchs2005_p::SMKE_05C, cchs2015_2016_p::SMK_055, cchs2017_2018_p::SMK_055, [SMK_05C], cchs2001_i::SMKA_05C, cchs2003_i::SMKC_05C, cchs2005_i::SMKE_05C, cchs2015_2016_i::SMK_055, cchs2017_2018_i::SMK_055, [SMK_05C]", +SMK_09A_cont,stpd,When did you stop smoking daily - former daily,Health behaviour,Smoking,Continuous,Years,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_09A, cchs2003_p::SMKC_09A, cchs2005_p::SMKE_09A, cchs2015_2016_p::SMK_080, cchs2017_2018_p::SMK_080, cchs2001_i::SMKA_09A, cchs2003_i::SMKC_09A, cchs2005_i::SMKE_09A, cchs2015_2016_i::SMK_080, cchs2017_2018_i::SMK_080, [SMK_09A]", +SMK_204,cigdayd,# of cigarettes smoked daily - daily smoker,Health behaviour,Smoking,Continuous,cigarettes,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_204, cchs2003_p::SMKC_204, cchs2005_p::SMKE_204, cchs2015_2016_p::SMK_045, cchs2017_2018_p::SMK_045, [SMK_204]", +SMK_208,# of cigarettes smoke each day - former daily,# of cigarettes smoked each day - former daily smoker,Health behaviour,Smoking,Continuous,cigarettes,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKA_208, cchs2003_p::SMKC_208, cchs2005_p::SMKE_208, cchs2015_2016_p::SMK_075, cchs2017_2018_p::SMK_075, [SMK_208]", +SMKDSTY_A,Smoking status,"Type of smoker: daily, occasional, always occasional, former daily, former occasional, never",Health behaviour,Smoking,Categorical,N/A,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2001_i::SMKADSTY, cchs2003_i::SMKCDSTY, cchs2005_i::SMKEDSTY, [SMKDSTY]","2015 onwards for smoke status still has 6 categories, but removed 'always occasional' (Never daily current occasional smoker) and added 'experimental' (at least 1 cig, non-smoker now)" +SMKDSTY_cat5,Smoking status,"Type of smoker: daily, occasional, former daily, former occasional, never",Health behaviour,Smoking,Categorical,N/A,Yes,"cchs2015_2016_p, cchs2017_2018, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKADSTY, cchs2003_p::SMKCDSTY, cchs2005_p::SMKEDSTY, cchs2015_2016_p::SMKDVSTY, cchs2017_2018_p::SMKDVSTY, [SMKDSTY]","Re-categorization of SMKDSTY to be used for smoking imputation. SMKDSTY_cat5 is a 5 category variable for smoking status for cycles up to 2018. Prior to 2015, 'occasional' and 'always occasional' are combined to form the current 'occasional' category. 2015 onwards, 'former occasional' and 'experimental' are combined to form the current 'former occasional' category" +SMKG01C_A,agec1,Age smoked first cigarette,Health behaviour,Smoking,Categorical,Years,Yes,"cchs2001_p, cchs2003_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2001_i::SMKAG01C, cchs2003_i::SMKC_01C, cchs2005_i::SMKE_01C, cchs2015_2016_i::SMK_035, cchs2017_2018_i::SMK_035, [SMK_01C]", +SMKG01C_cont,agec1,Age smoked first cigarette,Health behaviour,Smoking,Continuous,Years,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKAG01C, cchs2003_p::SMKCG01C, cchs2005_p::SMKEG01C, cchs2015_2016_p::SMKG035, cchs2017_2018_p::SMKG035, cchs2009_s::SMK_01C, cchs2010_s::SMK_01C, cchs2012_s::SMK_01C, cchs2003_i::SMKC_01c, cchs2005_i::SMKE_01C, [SMKG01C]", +SMKG09C,stpdy,Years since stopped smoking daily - former daily,Health behaviour,Smoking,Categorical,Years,Yes,"cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i, cchs2015_2016_i, cchs2017_2018_i","cchs2003_p::SMKCG09C, cchs2005_p::SMKEG09C, cchs2015_2016_p::SMKG090, cchs2017_2018_p::SMKG090, cchs2009_s::SMK_09C, cchs2010_s::SMK_09C, cchs2012_s::SMK_09C, cchs2003_i::SMKC_09C, cchs2005_i::SMKE_09C, cchs2015_2016_i::SMK_090, cchs2017_2018_i::SMK_090, [SMKG09C]", +SMKG203_A,agecigd,Age started to smoke daily - daily smoker (G),Health behaviour,Smoking,Categorical,Years,Yes,"cchs2001_p, cchs2003_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2001_i::SMKAG203, cchs2003_i::SMKC_203, cchs2005_i::SMKE_203, [SMK_203]", +SMKG203_cont,agecigd,Age started to smoke daily - daily smoker (G),Health behaviour,Smoking,Continuous,Years,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2001_p::SMKAG203, cchs2003_p::SMKCG203, cchs2005_p::SMKEG203, cchs2009_s::SMK_203, cchs2010_s::SMK_203, cchs2012_s::SMK_203, cchs2001_i::SMKAG203, [SMKG203], DerivedVar::[SMK_005, SMKG040]", +SMKG207_A,agecigfd,Age started to smoke daily - former daily smoker,Health behaviour,Smoking,Categorical,Years,Yes,"cchs2001_p, cchs2003_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2001_i, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2001_i::SMKAG207, cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMK_207]", +SMKG207_cont,agecigfd,Age started to smoke daily - former daily smoker,Health behaviour,Smoking,Continuous,Years,Yes,"cchs2001_p, cchs2003_p, cchs2005_p, cchs2007_2008_p, cchs2009_2010_p, cchs2010_p, cchs2011_2012_p, cchs2012_p, cchs2013_2014_p, cchs2014_p, cchs2015_2016_p, cchs2017_2018_p, cchs2009_s, cchs2010_s, cchs2012_s, cchs2003_i, cchs2005_i, cchs2007_2008_i, cchs2009_2010_i, cchs2011_2012_i, cchs2013_2014_i ","cchs2001_p::SMKAG207, cchs2003_p::SMKCG207, cchs2005_p::SMKEG207, cchs2009_s::SMK_207, cchs2010_s::SMK_207, cchs2012_s::SMK_207, cchs2003_i::SMKC_207, cchs2005_i::SMKE_207, [SMKG207], DerivedVar::[SMK_030, SMKG040]", \ No newline at end of file diff --git a/inst/extdata/mock_data_config.csv b/inst/extdata/mock_data_config.csv new file mode 100644 index 0000000..27f6ff4 --- /dev/null +++ b/inst/extdata/mock_data_config.csv @@ -0,0 +1,4 @@ +"uid","variable","role","label","labelLong","section","subject","variableType","units","position","source_database","source_spec","version","last_updated","notes","seed" +"v_003","index_date","enabled","Index date","Cohort entry date","Study design","Dates","date","YYYY-MM-DD",5,"cchs2001_p","variables_cchsflow_sample.csv",,"2025-11-01","Entry date for cohort, uniformly distributed between start and end dates", +"v_001","ADL_01","enabled, intermediate, outcome_sec, table1_master","Help preparing meals","Needs help - preparing meals","Health status","ADL","Categorical","N/A",10,"cchs2001_p","variables_cchsflow_sample.csv",,"2025-11-01","", +"v_009","ALW_2A1","enabled, intermediate","DailyConsumptionSunday","Number of drinks on Sunday","Health behaviour","Alcohol","Continuous","drinks",90,"cchs2001_p","variables_cchsflow_sample.csv",,"2025-11-01","", diff --git a/inst/extdata/mock_data_config_details.csv b/inst/extdata/mock_data_config_details.csv new file mode 100644 index 0000000..0693840 --- /dev/null +++ b/inst/extdata/mock_data_config_details.csv @@ -0,0 +1,12 @@ +"uid","uid_detail","variable","dummyVariable","recEnd","catLabel","catLabelLong","units","proportion","value","range_min","range_max","date_start","date_end","notes" +"v_003","d_001","index_date","","date_start","Start date","Accrual start date","YYYY-MM-DD",NA,NA,NA,NA,"2000-01-01","","Start of accrual period" +"v_003","d_002","index_date","","date_end","End date","Accrual end date","YYYY-MM-DD",NA,NA,NA,NA,"","2005-12-31","End of accrual period" +"v_001","d_003","ADL_01","ADL_01_cat2_1","1","Yes","Yes","N/A",NA,NA,NA,NA,"","","" +"v_001","d_004","ADL_01","ADL_01_cat2_2","2","No","No","N/A",NA,NA,NA,NA,"","","" +"v_001","d_005","ADL_01","ADL_01_cat2_NA::a","6","not applicable","not applicable","N/A",NA,NA,NA,NA,"","","" +"v_001","d_006","ADL_01","ADL_01_cat2_NA::b","[7,9]","don't know (7); refusal (8); not stated (9)","missing","N/A",NA,NA,NA,NA,"","","" +"v_001","d_007","ADL_01","ADL_01_cat2_NA::b","else","else","missing","N/A",NA,NA,NA,NA,"","","" +"v_009","d_008","ALW_2A1","N/A","[0,50]","Number of drinks on Sunday","Number of drinks on Sunday","drinks",NA,NA,NA,NA,"","","" +"v_009","d_009","ALW_2A1","N/A","996","not applicable","not applicable","drinks",NA,NA,NA,NA,"","","" +"v_009","d_010","ALW_2A1","N/A","[997,999]","don't know (997); refusal (998); not stated (999)","missing","drinks",NA,NA,NA,NA,"","","" +"v_009","d_011","ALW_2A1","N/A","else","else","missing","drinks",NA,NA,NA,NA,"","","" diff --git a/inst/metadata/README.md b/inst/metadata/README.md index 176354a..180a7fe 100644 --- a/inst/metadata/README.md +++ b/inst/metadata/README.md @@ -1,19 +1,16 @@ # Metadata Documentation for MockData -**Last updated**: 2025-10-18 +**Last updated**: 2025-11-01 -This directory contains metadata schema documentation for recodeflow-based harmonization projects. These schemas define the structure, validation rules, and conventions used across all recodeflow projects (CCHS, CHMS, and any other study using recodeflow for data harmonization). +This directory contains metadata schema documentation and recodeflow standards referenced by MockData. ## Purpose -MockData is a **generic** tool for generating mock data from recodeflow metadata. It works with any study that uses: -- `variables.csv` - harmonized variable definitions -- `variable_details.csv` - variable recoding specifications -- Recodeflow conventions (variableStart formats, range notation, etc.) +MockData is a **library for generating synthetic datasets** for testing recodeflow-based harmonization workflows. This directory contains: +1. **MockData configuration schemas** - Define the structure of MockData config files +2. **Recodeflow standards** - Document conventions used by recodeflow projects that MockData can read -These YAML files document the recodeflow conventions that MockData relies on. - -## Directory Structure +## Directory structure ``` inst/metadata/ @@ -21,62 +18,51 @@ inst/metadata/ ├── documentation/ # Recodeflow standards (from cchsflow) │ ├── database_metadata.yaml # Dublin Core database-level metadata schema │ └── metadata_registry.yaml # Central registry of shared specifications -└── schemas/ # Data structure schemas (from cchsflow) - ├── variables.yaml # Schema for variables.csv - ├── variable_details.yaml # Schema for variable-details.csv - ├── templates.yaml # Template specifications - └── missing_priority_rules.yaml # Missing data handling rules +└── schemas/ # Data structure schemas + └── mock_data_schema.yaml # MockData configuration schema (comprehensive) ``` -## Key Files +## Key files + +### schemas/mock_data_schema.yaml + +**Single source of truth** for all MockData configuration and schema specifications. + +Comprehensive schema for MockData configuration system: +- Structure for mock_data_config.csv (variable definitions) +- Structure for mock_data_config_details.csv (distribution parameters) +- Structure for generated mock data files (mock_data_catalog) +- Contamination model specifications with step-by-step examples +- Role patterns and recEnd standardized values +- Dataset catalog schema with Dublin Core metadata fields +- Dataset-agnostic missing code conventions (examples of common patterns) +- Integration with recodeflow ecosystem + +**Note:** MockData is a library for GENERATING mock data, not storing datasets. +Minimal examples are included for demonstration only. Future integration with +recodeflow dataset registry will provide comprehensive dataset cataloging. ### documentation/database_metadata.yaml -Defines Dublin Core-compliant database-level metadata: +Defines Dublin Core-compliant database-level metadata standards: - Dataset titles, descriptions, creators - Coverage (temporal, spatial, population) - Rights and access information - Keywords and subject classification -**Applies to**: Any recodeflow project documenting datasets +**Source**: Recodeflow ecosystem standards (from cchsflow) +**Relevance to MockData**: Used for cataloging generated mock datasets ### documentation/metadata_registry.yaml -Central registry of shared specifications used across all recodeflow schema files: +Central registry of shared specifications used across recodeflow schema files: - CSV format specifications - Tier system (core, optional, versioning, extension) - Validation patterns (variable names, dates, etc.) -- **Transformation patterns for variableStart field** - -**Applies to**: All recodeflow projects (CCHS, CHMS, etc.) - -### schemas/variables.yaml - -Schema for `variables.csv` used in any recodeflow project: -- Field definitions (variable, label, variableType, databaseStart, variableStart) -- Validation rules and constraints -- Examples and usage notes -- Tier classification (core vs optional fields) +- Transformation patterns for variableStart field -**Applies to**: Any project using recodeflow for harmonization - -### schemas/variable_details.yaml - -Schema for `variable_details.csv`: -- Field definitions (variable, database, recodes, catLabel) -- Recoding specifications -- Missing data handling -- Category label requirements - -**Applies to**: Any project using recodeflow for harmonization - -### schemas/templates.yaml - -Template specifications for reusable variable patterns. - -### schemas/missing_priority_rules.yaml - -Rules for handling missing data priority across different missing value codes. +**Source**: Recodeflow ecosystem standards (from cchsflow) +**Relevance to MockData**: Documents conventions that MockData parsers rely on when reading recodeflow metadata ## Recodeflow Conventions Used by MockData @@ -267,20 +253,16 @@ valid_databases <- c("your", "database", "names") ## Relationship to cchsflow and recodeflow -These schema files are **recodeflow conventions** sourced from cchsflow: - -**From cchsflow (unchanged)**: -- `documentation/database_metadata.yaml` - Dublin Core standard (recodeflow) -- `documentation/metadata_registry.yaml` - Shared specifications (recodeflow) -- `schemas/variables.yaml` - Core variable schema (recodeflow) -- `schemas/variable_details.yaml` - Variable details schema (recodeflow) -- `schemas/templates.yaml` - Template specifications (recodeflow) -- `schemas/missing_priority_rules.yaml` - Missing data rules (recodeflow) +**From recodeflow ecosystem (reference documentation)**: +- `documentation/database_metadata.yaml` - Dublin Core standard for dataset cataloging +- `documentation/metadata_registry.yaml` - Shared specifications (CSV format, validation patterns, variableStart transformations) -**MockData adds**: +**MockData-specific**: +- `schemas/mock_data_schema.yaml` - Complete MockData configuration schema - Generic functions that work with any recodeflow metadata - Study-agnostic parsers and generators -- This documentation emphasizing universal applicability +- Dataset generation library (not a dataset repository) +- Parsers for recodeflow conventions (variableStart formats, range notation) ## Key Principle: Study-Agnostic Design @@ -326,18 +308,18 @@ MockData currently returns NULL for these (future enhancement could add generic ## References -- **cchsflow metadata**: Source of these recodeflow schemas - **recodeflow**: Framework for data harmonization (in development) +- **cchsflow**: CCHS harmonization package (source of recodeflow conventions) - **Dublin Core standard**: https://www.dublincore.org/specifications/dublin-core/ - **DCAT vocabulary**: https://www.w3.org/TR/vocab-dcat-2/ ## Maintenance -These schema files should be updated when: -- Recodeflow conventions change (sync with cchsflow) -- New variableStart patterns are introduced -- New range notation patterns are added -- Field definitions change in recodeflow standards +**MockData schema** (`mock_data_schema.yaml`): +- Updated when MockData configuration structure changes +- Maintained by MockData development team -**Schema source**: cchsflow/inst/metadata/ (recodeflow conventions) -**Maintainer**: MockData development team +**Recodeflow standards** (`documentation/*.yaml`): +- Updated when syncing with recodeflow ecosystem changes +- Source: cchsflow/inst/metadata/ (recodeflow conventions) +- Sync when variableStart patterns, range notation, or validation rules change diff --git a/inst/metadata/documentation/metadata_registry.yaml b/inst/metadata/documentation/metadata_registry.yaml index 825b7c0..00841d3 100644 --- a/inst/metadata/documentation/metadata_registry.yaml +++ b/inst/metadata/documentation/metadata_registry.yaml @@ -154,12 +154,27 @@ schema_registry: file: "metadata_registry.yaml" full_path: "inst/metadata/documentation/metadata_registry.yaml" purpose: "Central registry for shared specifications and schema definitions." - + database_metadata: - file: "database_metadata.yaml" + file: "database_metadata.yaml" full_path: "inst/metadata/documentation/database_metadata.yaml" purpose: "Database-specific metadata and configuration." - + + study_config: + file: "study_config.yaml" + full_path: "inst/metadata/schemas/study_config.yaml" + purpose: "Study configuration schema for MockData survival analysis data generation." + target_csv: "study_config.csv" + status: "active" + version: "1.0.0" + notes: | + Defines parameters for generating mock survival data including: + - Study design (open_cohort vs fixed_followup) + - Time windows (accrual, follow-up, calendar cutoffs) + - Event parameters (death, primary/competing outcomes) + - Data quality settings (censoring, missing values, invalid dates) + Example configuration: inst/extdata/study_config_example.csv + cross_validation_requirements: variable_consistency: "variable_details.variable must exist in variables.variable" database_consistency: "databaseStart values must match between schemas" diff --git a/inst/metadata/schemas/missing_priority_rules.yaml b/inst/metadata/schemas/missing_priority_rules.yaml deleted file mode 100644 index c2ccaf5..0000000 --- a/inst/metadata/schemas/missing_priority_rules.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# ============================================================================== -# Universal Missing Data Priority Rules (Core Fallback) -# ============================================================================== -# -# Fallback priority configuration for general data handling when survey-specific -# rules are not available. Provides sensible defaults for any data processing context. -# -# Universal Priority Hierarchy: -# 1. "Not Applicable" (NA::a) - Structural non-response (higher priority) -# 2. "Not Stated" (NA::b) - Item non-response/refusal (lower priority) -# -# This follows a general data science convention where structural reasons for -# missing data (question doesn't apply) are prioritized over behavioral reasons -# (respondent choice not to answer). -# -# SCHEMA VERSION: 1.0.0 -# CREATED: 2025-08-03 -# PURPOSE: Level 5 missing data processing fallback configuration -# USAGE: Used by load_priority_rules() when CCHS-specific rules unavailable - -priority_rules: - na_a: 1 # "Not Applicable" - higher priority (structural reason) - na_b: 2 # "Not Stated" - lower priority (behavioral reason) - -# Documentation for priority values: -# - Lower numeric values = higher priority (1 beats 2, 2 beats 3, etc.) -# - na_a (Not Applicable) = 1: Highest priority - systematic/structural non-response -# - na_b (Not Stated) = 2: Lower priority - voluntary/behavioral non-response - -# Design rationale: -# This reverses the CCHS hierarchy to provide a general-purpose fallback that -# prioritizes systematic patterns over individual choices, which is often more -# useful for general data analysis outside of survey research contexts. - -# Example usage in derived variables: -# When both NA::a and NA::b are present, NA::a (Not Applicable) will be returned -# as it represents a systematic reason rather than an individual choice. diff --git a/inst/metadata/schemas/mock_data_schema.yaml b/inst/metadata/schemas/mock_data_schema.yaml new file mode 100644 index 0000000..0216445 --- /dev/null +++ b/inst/metadata/schemas/mock_data_schema.yaml @@ -0,0 +1,1222 @@ +# MockData schema: Schema definitions for mock data configuration files +# +# Purpose: Single source of truth for MockData configuration structure. +# Defines schemas for variable definitions (mock_data_config.csv) and +# distribution parameters (mock_data_config_details.csv), aligned with +# recodeflow/cchsflow patterns. +# +# This file consolidates all schema specifications. Separate datasets +# catalog (datasets_catalog.yaml) catalogs specific mock datasets using +# Dublin Core metadata. + +name: MockData_Configuration_Schema +version: 0.2.0 +date: 2025-11-01 +status: active + +description: > + Comprehensive schema definitions for MockData configuration files. Defines + structure for metadata-driven mock data generation aligned with recodeflow/ + cchsflow patterns. Supports two-file configuration: variable definitions + (config) and distribution details (details). + +# Core principles + +principles: + metadata_driven: + description: > + Configuration uses existing research specifications (variables.csv, + variable_details.csv patterns) rather than requiring duplicate + specifications in code. + + raw_survey_data: + description: > + Generates realistic raw survey data with numeric missing codes + (7=Don't know, 8=Refusal, 9=Not stated), not recoded/harmonized + data (NA::a, NA::b from haven). Allows testing of complete data + cleaning and harmonization pipelines. + + contamination_model: + description: > + Two-step generation: (1) population distribution (valid + missing + sum to 1.0), (2) contamination replaces some valid values with + implausible values. Matches real-world data quality issues. + + recodeflow_alignment: + description: > + File structure and naming align with recodeflow/cchsflow patterns: + catalog.yaml + config.csv + config_details.csv. Supports same + metadata columns (role, section, subject, labelLong, etc.). + +# Shared specifications across all MockData configuration files + +shared_specifications: + + csv_format: + encoding: UTF-8 + delimiter: "," + quote_char: "\"" + header: true + na_string: "" + comment_char: "#" + notes: > + All CSV files MUST be generated programmatically using data.frame + operations and write.csv() in R. Manual editing discouraged to + avoid column misalignment and quoting errors. + + missing_data_standards: + description: > + Missing data values must be explicitly specified in configuration files. + Common conventions include numeric codes (7, 8, 9 in Canadian health surveys; + 96, 97, 98, 99 in other contexts; -7, -8, -9 in some databases) or special + values (NA, NULL, ""). MockData supports any numeric missing codes specified + in the details file. + + raw_vs_recoded: + raw_codes: + description: > + MockData generates RAW missing codes as specified in details file + (e.g., 7="Don't know", 8="Refusal", 9="Not stated"). These are numeric + values in the generated dataset. + examples: + - "7, 8, 9 (common in Canadian health surveys: CCHS, CHMS)" + - "96, 97, 98, 99 (common in US surveys)" + - "-7, -8, -9 (common in administrative databases)" + + recoded_codes: + description: > + MockData does NOT generate recoded/harmonized missing codes (e.g., + NA::a, NA::b, NA::c from haven package). Recoded data is the OUTPUT + of harmonization pipelines, not the INPUT for testing those pipelines. + + configurable_codes: + notes: > + Users specify missing codes in mock_data_config_details.csv via recEnd + column. Any numeric value can serve as a missing code. The examples above + (7/8/9) are common but not required. + + contamination_standards: + description: > + Two-step generation model: (1) Population distribution (valid + missing + proportions sum to 1.0), (2) Contamination replaces some valid values + (corrupt_* proportions applied to valid subset only). + + contamination_types: + corrupt_low: + description: "Implausible low values (below valid range)" + example: "BMI = -1, Age = 5" + applies_to: [continuous, integer] + proportion_base: "Applied to VALID values only" + + corrupt_high: + description: "Implausible high values (above valid range)" + example: "BMI = 200, Age = 127" + applies_to: [continuous, integer] + proportion_base: "Applied to VALID values only" + + corrupt_future: + description: "Impossible future dates" + example: "death_date = 2099-01-01" + applies_to: [date, survival] + proportion_base: "Applied to VALID values only" + + contamination_model: + step1_population: + description: > + Generate from population distribution. Extract valid and missing + proportions (must sum to 1.0). Sample category assignment, generate + numeric values for valid category, assign raw codes to missing + categories. + example: + valid: 0.95 + DK_7: 0.03 + NS_9: 0.02 + sum: 1.0 + + step2_contamination: + description: > + Apply contamination. Extract corrupt_* proportions. Identify valid + indices. Sample from valid to corrupt. Replace with values from + contamination ranges. Ensure no overlap (use setdiff for sequential). + example: + corrupt_low: 0.02 # Replace 2% of valid values + corrupt_high: 0.01 # Replace 1% of valid values + + final_distribution: + description: > + After applying contamination model to population distribution + example: + valid_clean: "~93% (95% * 0.97)" + corrupt_low: "~2% (95% * 0.02)" + corrupt_high: "~1% (95% * 0.01)" + DK_7: "3%" + NS_9: "2%" + + implementation_notes: > + Contamination proportions are SEPARATE from population proportions. + They are excluded from the 1.0 sum validation and applied after + population generation. This matches real-world data cleaning workflows + where outliers and errors contaminate otherwise valid measurements. + + validation_patterns: + proportion_sum: + rule: "valid + missing proportions sum to 1.0 (±0.001 tolerance)" + applies_to: "mock_data_config_details.csv" + contamination_handling: "corrupt_* rows excluded from sum" + auto_normalize: "If sum ≠ 1.0, auto-normalize with warning" + + required_parameters: + normal: + required: [mean, sd] + optional: [range_min, range_max] + gompertz: + required: [rate, shape] + optional: [followup_range] + exponential: + required: [rate] + optional: [followup_range] + poisson: + required: [rate] + optional: [range_min, range_max] + uniform: + required: [range_min, range_max] + optional: [] + + recEnd_validation: + mode: "flexible" + description: > + Validate based on variable type, but warn rather than error on + unknown recEnd values. Allow extensibility for future needs. + + role_patterns: + syntax: "comma_separated" + example: "predictor, enabled, table1" + + standard_roles: + generation_control: + enabled: + description: "Generate this variable in dataset" + required_for_generation: true + + metadata: + description: "Study-level parameter (not generated as column)" + mutually_exclusive_with: [enabled] + + variable_function: + predictor: + description: "Independent variable / covariate" + compatible_with: [enabled, table1, confounder] + + outcome: + description: "Dependent variable / endpoint" + compatible_with: [enabled] + + confounder: + description: "Confounding variable for causal analysis" + compatible_with: [enabled, predictor] + + exposure: + description: "Treatment or exposure variable" + compatible_with: [enabled] + + table_roles: + table1: + description: "Include in Table 1 (baseline characteristics)" + compatible_with: [enabled, predictor] + + table2: + description: "Include in Table 2 (secondary characteristics)" + compatible_with: [enabled] + + model_roles: + model1_predictor: + description: "Predictor for model 1" + compatible_with: [enabled, predictor] + + model1_outcome: + description: "Outcome for model 1" + compatible_with: [enabled, outcome] + + constraints: + - at_least_one_role: true + - whitespace_trimmed: true + + parsing: + method: "strsplit(config$role, ',\\\\s*')" + example_code: | + # Check if variable has "enabled" role + has_enabled <- grepl("\\benabled\\b", config$role) + + # Filter to table1 variables + table1_vars <- config[grepl("\\btable1\\b", config$role), ] + + extensibility: > + Roles are extensible. Users can define custom roles (e.g., sensitivity_analysis, + table3) for project-specific filtering. The only required role for generation + is "enabled". + + recEnd_standardized_values: + description: > + Comprehensive specification of standardized recEnd values used in + mock_data_config_details.csv. Organized by variable type and purpose. + + categorical_categories: + description: "Category values for categorical variables" + notes: > + Can be numeric (1, 2, 3), character ("yes", "no"), or any value. + Defined per-variable in mock_data_config_details.csv recEnd column. + These are valid categories, not missing codes. + examples: + numeric: ["1", "2", "3", "4"] + character: ["never", "former", "current"] + mixed: ["0", "1", "unknown"] + + missing_codes: + description: "Raw survey missing data codes (dataset-specific)" + notes: > + Missing codes are defined in mock_data_config_details.csv for each + dataset. Common conventions vary by survey organization and country. + Any numeric value can serve as a missing code. + + common_patterns: + canadian_health_surveys: + description: "CCHS, CHMS, and related surveys" + codes: + 7: "Don't know" + 8: "Refusal" + 9: "Not stated" + + us_surveys: + description: "Some US survey conventions" + codes: + 96: "Valid skip" + 97: "Don't know" + 98: "Refusal" + 99: "Not stated" + + negative_codes: + description: "Administrative databases" + codes: + -7: "Don't know" + -8: "Refusal" + -9: "Not stated" + + usage: > + Specify missing codes in mock_data_config_details.csv using recEnd + column. Each dataset can have its own missing code convention. + + continuous_parameters: + distribution: + description: "Distribution type" + example_value: "normal" + allowed_values: [normal, uniform, exponential, poisson] + + mean: + description: "Mean parameter for normal distribution" + example_value: 27 + + sd: + description: "Standard deviation for normal distribution" + example_value: 5 + + rate: + description: "Rate parameter for exponential/poisson" + example_value: 0.01 + + valid: + description: "Valid value specification with range" + has_proportion: true + has_range: true + + survival_parameters: + distribution: + description: "Survival distribution type" + allowed_values: [gompertz, exponential, uniform] + + rate: + description: "Rate parameter for gompertz/exponential" + example_value: 0.01 + + shape: + description: "Shape parameter for gompertz" + example_value: 0.1 + + followup_range: + description: "Follow-up time range in days" + has_range: true + + censored: + description: "Censoring specification" + has_proportion: true + + date_parameters: + date_start: + description: "Start date for date range" + has_date: true + + date_end: + description: "End date for date range" + has_date: true + + contamination_parameters: + corrupt_low: + description: "Implausible low values" + has_proportion: true + has_range: true + applies_to: [continuous, integer] + notes: "Proportion of VALID values to replace (not population proportion)" + + corrupt_high: + description: "Implausible high values" + has_proportion: true + has_range: true + applies_to: [continuous, integer] + notes: "Proportion of VALID values to replace" + + corrupt_future: + description: "Impossible future dates" + has_proportion: true + has_date: true + applies_to: [date, survival] + notes: "Dates beyond reasonable future" + + validation: + mode: flexible + description: > + Validate based on variable type, but warn rather than error on + unknown recEnd values. Allows extensibility for future parameter + types without schema updates. + +# Schema definitions + +schemas: + + mock_data_config: + target_csv: inst/extdata/mock_data_config.csv + generator_script: inst/extdata/generate_mock_data_config.R + + purpose: > + Variable-level definitions for mock data generation. One row per + variable, defining high-level properties (role, type, label, + position) without distribution-specific parameters. + + structure: wide_format + row_type: one_per_variable + + relationship_to_details: > + Primary key (uid) links to mock_data_config_details.csv via uid. + Variable names can change, but uid remains stable. Each variable in + config may have multiple detail rows specifying distribution parameters, + category proportions, and contamination. + + columns: + uid: + type: character + required: true + unique: true + description: > + Unique identifier for this variable definition. Stable across + variable name changes. Format: v_ + sequential number or descriptive + ID (e.g., "v_001", "v_age_baseline", "v_bmi"). + pattern: "^v_[a-z0-9_]+$" + examples: + - "v_001" + - "v_age_baseline" + - "v_bmi" + - "v_smoking_status" + + variable: + type: character + required: true + unique: true + description: > + Variable name used in generated data. Can change if variable is + renamed, but uid remains constant for linking to details. + pattern: "^[a-zA-Z][a-zA-Z0-9_]*$" + constraints: + - max_length: 64 + - no_duplicates: true + + role: + type: character + required: true + pattern: "comma_separated" + description: > + Multi-valued roles for the variable. Comma-separated list indicating + how the variable should be used. See shared_specifications.role_patterns + for complete taxonomy. + + label: + type: character + required: false + description: "Short label for tables (≤20 characters)" + + labelLong: + type: character + required: false + description: "Descriptive label for documentation" + + section: + type: character + required: false + description: "Primary grouping for Table 1 (e.g., Demographics, Health)" + + subject: + type: character + required: false + description: "Secondary grouping within section (e.g., Age, BMI)" + + variableType: + type: character + required: true + allowed_values: [categorical, continuous, date, survival, character, integer] + description: "Data type for generation" + + units: + type: character + required: false + description: "Measurement units (e.g., years, kg/m2, mmHg)" + + position: + type: integer + required: true + description: "Sort order for generation (10, 20, 30...)" + constraints: + - must_be_positive: true + - recommended_increment: 10 + + source_database: + type: character + required: false + description: > + Database identifier(s) from which this variable was imported. + When importing from recodeflow metadata, this is extracted from + the databaseStart field based on the database filter parameter. + Multiple databases can be comma-separated. + examples: + - "cchs2001_p" + - "cchs2015_2016_p, cchs2017_2018_p" + - "cycle1" + + source_spec: + type: character + required: false + description: > + Source specification file from which this variable was imported. + Typically the filename of the recodeflow variables.csv file used + for import. Helps track provenance of variable definitions. + examples: + - "variables_cchsflow_sample.csv" + - "variables_DemPoRT.csv" + - "variables.csv" + + version: + type: character + required: false + pattern: "semantic_version" + description: "Configuration version (e.g., 2.0.0)" + + last_updated: + type: date + required: false + format: "YYYY-MM-DD" + description: "Date last modified" + + notes: + type: character + required: false + description: "Documentation and implementation notes" + + seed: + type: integer + required: false + description: "Random seed for reproducibility (variable-level)" + + special_variables: + metadata_variables: + description: > + Variables with role="metadata" store study-level parameters and are + NOT generated as columns in the dataset. Instead, they are extracted + by get_study_metadata() and used to control generation. + + common_metadata_variables: + - study_name (character) + - study_design (character: open_cohort, fixed_followup) + - accrual_start (date) + - accrual_end (date) + - max_followup_date (date) + - sample_size (integer) + + storage: + variable: "Variable name (e.g., study_name)" + role: "metadata" + variableType: "character, date, or integer" + labelLong: "Stored value as string" + + survival_variables: + description: > + Variables with variableType="survival" generate TWO columns in the + dataset: the event date column ({variable}) and a status indicator + column ({variable}_status). Status = 1 for observed events, 0 for censored. + + generated_columns: + event_date: "{variable} (e.g., death_date)" + status: "{variable}_status (e.g., death_date_status)" + + validation: + - "uid column must be unique (no duplicates)" + - "variable column must be unique (no duplicates)" + - "role must contain at least one value" + - "variableType must be one of allowed_values" + - "position must be positive integer" + - "If role contains 'metadata', variable stores study-level parameter" + + mock_data_config_details: + target_csv: inst/extdata/mock_data_config_details.csv + generator_script: inst/extdata/generate_mock_data_config_details.R + + purpose: > + Distribution parameters and proportions for mock data generation. + Multiple rows per variable, one row per category or parameter + specification. Supports category-specific proportions, distribution + parameters, and contamination specifications. + + structure: long_format + row_type: multiple_per_variable + + relationship_to_config: > + Foreign key (uid) links to mock_data_config.csv via uid. All uids + in details MUST exist in config. Variables in config without detail + rows fall back to uniform distributions. + + columns: + uid: + type: character + required: true + foreign_key: mock_data_config.uid + description: > + Links to mock_data_config.csv via uid (variable-level). Stable across + variable name changes. Each detail row belongs to a variable defined + in config. All detail rows for the same variable share the same uid. + pattern: "^v_[a-z0-9_]+$" + examples: + - "v_001" + - "v_age_baseline" + + uid_detail: + type: character + required: true + unique: true + description: > + Unique identifier for this specific detail row (row-level). Each row + in mock_data_config_details.csv gets its own uid_detail for precise + tracking and reference. Format: d_ + sequential number. + pattern: "^d_[0-9]+$" + examples: + - "d_001" + - "d_002" + - "d_003" + + variable: + type: character + required: true + description: > + Variable name for reference (denormalized from config for + readability). Primary link is via uid, but variable name included + to make details file human-readable. + + dummyVariable: + type: character + required: false + description: > + Dummy variable identifier from recodeflow variable_details.csv. + Used to track the specific category/parameter specification from + the source metadata. Typically follows pattern: {variable}_{type}_{value}. + examples: + - "ADL_01_cat2_1" + - "ADL_01_cat2_2" + - "ADL_01_cat2_NA::a" + - "BMI_cont_valid" + + recEnd: + type: character + required: true + description: > + Category value or parameter name. See shared_specifications.recEnd_standardized_values + for complete listing organized by variable type. + + catLabel: + type: character + required: false + description: "Short category label (≤20 characters)" + + catLabelLong: + type: character + required: false + description: > + Long category label for documentation. When importing from recodeflow + variable_details.csv, this is copied from the catLabelLong field. + Can be left empty and populated later with table1 metadata. + + units: + type: character + required: false + description: > + Measurement units for this specific parameter. May differ from the + variable-level units in mock_data_config.csv for continuous variables + with different parameter specifications. + + proportion: + type: numeric + required: false + range: [0, 1] + description: > + Proportion for this category (0-1). Population proportions + (valid + missing) must sum to 1.0. Contamination proportions + (corrupt_*) are separate and applied after population generation. + + value: + type: numeric + required: false + description: "Numeric parameter value (for mean, sd, rate, shape, etc.)" + + range_min: + type: numeric + required: false + description: "Minimum value for range (continuous, integer, contamination)" + + range_max: + type: numeric + required: false + description: "Maximum value for range (continuous, integer, contamination)" + + date_start: + type: date + required: false + format: "YYYY-MM-DD" + description: "Start date for date ranges" + + date_end: + type: date + required: false + format: "YYYY-MM-DD" + description: "End date for date ranges" + + notes: + type: character + required: false + description: "Implementation notes for this parameter" + + validation: + - "All uids must exist in mock_data_config.csv" + - "All uid_detail values must be unique (no duplicates)" + - "Proportion values must be in range [0, 1]" + - "Population proportions (valid + missing) sum to 1.0 ±0.001" + - "Contamination proportions (corrupt_*) excluded from sum" + - "Auto-normalize proportions with warning if sum ≠ 1.0" + - "Required parameters present for each distribution type" + - "range_min < range_max (if both specified)" + - "date_start < date_end (if both specified)" + + mock_data_catalog: + target_csv: "inst/examples/demport/mock_cchs*.csv" + + purpose: > + Schema for the actual generated mock data files (the output CSV files). + These are the mock datasets created by MockData, cataloged in + datasets_catalog.yaml. Each file contains one row per participant with + all generated variables as columns. + + structure: wide_format + row_type: one_per_participant + + relationship_to_config: > + Generated from mock_data_config.csv and mock_data_config_details.csv. + Each column in the output corresponds to a variable defined in config. + Only variables with role="enabled" are included by default. + + required_columns: + uid: + type: character + required: true + unique: true + description: > + Unique identifier for each participant. Format: dataset_id + + sequential number (e.g., "cchs2015_00001", "chms3_00001"). + Allows linking across multiple generated files and tracking + individual records. + pattern: "^[a-z0-9_]+_[0-9]{5,}$" + examples: + - "cchs2015_00001" + - "chms3_00042" + - "demport_10234" + + variable_columns: + description: > + All other columns are generated variables from mock_data_config.csv. + Column names match the 'variable' field from config. Data types and + values follow the specifications in mock_data_config_details.csv. + + categorical_variables: + type: numeric + description: > + Categorical variables are numeric codes (1, 2, 3, ...) plus + missing codes (7="Don't know", 8="Refusal", 9="Not stated" or + other configured codes). + + continuous_variables: + type: numeric + description: > + Continuous variables are numeric values within specified ranges, + plus missing codes (7, 8, 9) and potentially contaminated values + (implausible but numeric). + + date_variables: + type: character + format: "YYYY-MM-DD" + description: > + Date variables in ISO 8601 format, plus missing code 9 for + "Not stated" dates. + + survival_variables: + type: numeric + description: > + Time-to-event in days, possibly censored. Missing code 9 for + "Not stated". + + character_variables: + type: character + description: > + Free text or categorical text values. Rarely used in mock data. + + validation: + - "uid column present and unique" + - "No duplicate UIDs within dataset" + - "All variable columns correspond to enabled variables in config" + - "Categorical variables contain only specified categories + missing codes" + - "Continuous variables respect range constraints (except contamination)" + - "Date variables in YYYY-MM-DD format" + - "No NA values (use numeric missing codes instead)" + +# Workflow integration + +workflow: + + generation_process: + step1: + action: "Read configuration files" + functions: + - read_mock_data_config(config_path) + - read_mock_data_config_details(details_path) + validation: "Automatic validation on read (validate = TRUE)" + + step2: + action: "Extract study metadata" + function: get_study_metadata(config) + notes: "Extract rows where role contains 'metadata'" + + step3: + action: "Generate variables in position order" + function: generate_from_config(config_path, details_path, n) + notes: "Loop through enabled variables, call type-specific generators" + + step4: + action: "Type-specific generation" + functions: + - generate_categorical_variable(df_mock, var_row, n, details) + - generate_continuous_variable(df_mock, var_row, n, details) + - generate_survival_variable(df_mock, var_row, n, details) + - generate_date_variable(df_mock, var_row, n, details) + - generate_integer_variable(df_mock, var_row, n, details) + - generate_character_variable(df_mock, var_row, n, details) + notes: "Details parameter passed to access proportions and parameters" + + step5: + action: "Return complete dataset" + output: "data.frame with all enabled variables" + + contamination_workflow: + population_generation: + description: > + Step 1: Generate from population distribution. Extract valid and + missing proportions (must sum to 1.0). Sample category assignment, + generate numeric values for valid category, assign raw codes (7, 8, 9) + to missing categories. + + contamination_application: + description: > + Step 2: Apply contamination. Extract corrupt_* proportions. Identify + valid indices. Sample from valid to corrupt. Replace with values from + contamination ranges. Ensure no overlap (use setdiff for sequential). + + final_distribution: + example: > + Population: 95% valid + 3% DK + 2% NS = 100% + Contamination: 2% corrupt_low + 1% corrupt_high (of valid) + Final: ~93% valid, ~2% corrupt_low, ~1% corrupt_high, 3% DK, 2% NS + +# Versioning and compatibility + +versioning: + current_version: "0.2.0" + previous_version: "0.1.0 (study_config_unified format)" + breaking_changes: + - "Separated variable definitions from distribution details (two files)" + - "Multi-valued comma-separated roles (replaced boolean enabled)" + - "Raw missing codes (configurable, e.g. 7, 8, 9) instead of NA" + - "Contamination model (corrupt_* rows)" + - "Added uid columns for stable variable identifiers" + + migration_from_v01: + status: "Not supported (clean break)" + notes: > + v0.1 (study_config_unified) has been deprecated and removed. + No migration path provided. Users must create new v0.2 configurations + from scratch using generator scripts. + +# Source of truth and synchronization + +source_of_truth: + standalone_mode: + version: "0.2.0 (current)" + description: > + MockData configuration files (mock_data_config.csv + mock_data_config_details.csv) + are the source of truth. Users create these files manually or using generator + scripts. Good for custom mock data and testing-specific scenarios. + + import_mode: + version: "0.3.0+ (planned)" + description: > + MockData can import metadata from recodeflow packages (cchsflow, chmsflow, etc.) + and convert to mock_data_config format. The recodeflow metadata becomes the + source of truth, with MockData configurations derived from it. + + planned_features: + - "import_from_cchsflow() - Convert cchsflow variables.csv to mock_data_config.csv" + - "import_from_chmsflow() - Convert chmsflow variables.csv to mock_data_config.csv" + - "sync_with_source() - Check for updates in source metadata and re-import" + - "Track source and version in config (source='cchsflow', version='2.1.0')" + + synchronization_strategy: + - "Source metadata (cchsflow) tracks variable definitions" + - "MockData adds generation-specific parameters (proportions, contamination)" + - "Periodic sync checks for variable additions/removals in source" + - "User can override imported parameters for testing needs" + + future_considerations: + note: > + Recodeflow universe metadata may require refactoring to support bidirectional + synchronization. This is acceptable and will be coordinated across packages. + +# References and alignment + +alignment: + recodeflow: + file_structure: "catalog.yaml + config.csv + config_details.csv" + metadata_columns: "role, section, subject, labelLong, position" + details_pattern: "recEnd column for parameter names" + folder_structure: "inst/metadata/schemas/ for YAML, inst/extdata/ for CSV" + + cchsflow: + pattern: "variables.csv + variable_details.csv structure" + example_files: + - inst/extdata/variables.csv + - inst/extdata/variable_details.csv + + health_surveys: + raw_codes: "7, 8, 9 (Canadian health survey standards)" + target_surveys: [CCHS, CHMS, DemPoRT, HUIPoRT, HTNPoRT] + +# Dataset catalog integration (Dublin Core metadata schema) + +dataset_catalog: + purpose: > + MockData is a LIBRARY for generating mock data, not a repository of datasets. + Generated datasets are cataloged using Dublin Core metadata aligned with + recodeflow patterns. This section defines the schema for cataloging + MockData-generated datasets. + + catalog_structure: + description: > + Dataset catalog follows Dublin Core metadata standards for describing + mock datasets. Each catalog entry describes a specific mock dataset + (e.g., "CCHS 2015-2016 mock") with source survey information, generation + parameters, and file locations. + + alignment: > + Follows recodeflow pbc_metadata.yaml pattern. Future integration will + register MockData datasets in recodeflow's unified dataset registry. + + dataset_type_classification: + mock_data: + description: "Synthetic data generated by MockData for testing" + purpose: "Testing harmonization workflows, package development, education" + characteristics: + - Realistic distributions matching source surveys + - Configurable contamination for data quality testing + - Reproducible with seed control + + development_data: + description: "Real data subsets for development environments" + purpose: "Algorithm development, code testing" + + production_data: + description: "Full datasets for analysis" + purpose: "Research outputs, publications" + + catalog_metadata_fields: + title: + description: "Dataset title" + required: true + example: "CCHS 2001 Iteration Mock Dataset" + + source_survey: + description: "Source survey information" + required: true + fields: + name: + description: "Full survey name" + example: "Canadian Community Health Survey (CCHS)" + cycle: + description: "Survey cycle or year" + example: "2001" + iteration: + description: "Iteration type (i=iteration, p=provincial, s=special)" + example: "i" + abbreviation: + description: "Short survey identifier" + example: "CCHS 2001" + + description: + description: "Detailed description of the dataset" + required: true + example: > + Mock data generated to replicate the structure and distributions of + CCHS 2001 iteration. Used for testing cchsflow harmonisation workflows + and recodeflow transformations. + + creator: + description: "Dataset creators and affiliations" + required: true + type: "list" + fields: + name: + description: "Creator name" + example: "Big Life Lab" + affiliation: + description: "Institutional affiliation" + example: "University of Ottawa" + + date: + description: "Temporal information" + required: true + fields: + issued: + description: "Date dataset was generated" + format: "YYYY-MM-DD" + example: "2025-11-01" + coverage: + description: "Time period covered by source data" + example: "2001" + + subject: + description: "Keywords and topics" + required: false + type: "list" + examples: + - "Canadian Community Health Survey" + - "health survey" + - "mock data" + - "testing data" + + type: + description: "Resource type" + required: true + allowed_values: ["Mock Dataset", "Development Dataset", "Production Dataset"] + example: "Mock Dataset" + + format: + description: "File format" + required: true + example: "CSV" + + file_location: + description: "Path to dataset file (relative to package root)" + required: true + example: "inst/examples/demport/mock_cchs2001_i.csv" + + identifier: + description: "Unique identifiers for the dataset" + required: true + type: "list" + fields: + type: + description: "Identifier type" + example: "dataset_id" + value: + description: "Identifier value" + example: "cchs_2001_i" + + relation: + description: "Relationships to other resources" + required: false + type: "list" + fields: + type: + description: "Relationship type (Dublin Core)" + allowed_values: ["IsPartOf", "IsDerivedFrom", "Requires", "References"] + identifier: + description: "Related resource identifier" + + rights: + description: "Usage rights and license" + required: true + example: "Open Source" + + technical_details: + description: "MockData-specific technical information" + required: false + fields: + n_rows: + description: "Number of rows (or 'variable' if configurable)" + example: "variable" + generation_method: + description: "Generation approach" + example: "metadata-driven" + metadata_source: + description: "Source metadata files" + example: "cchsflow variables.csv and variable_details.csv" + contamination_model: + description: "Data quality model used" + example: "two-step (distribution + corruption)" + reproducible: + description: "Whether generation is reproducible" + type: "boolean" + example: true + + catalog_storage: + mockdata_examples: + description: "Minimal example datasets included in MockData package" + location: "inst/examples/" + purpose: "Vignettes, testing, demonstration" + scope: "Small illustrative examples only" + catalog_format: "Embedded in mock_data_schema.yaml" + + recodeflow_registry: + description: "Comprehensive dataset catalog (planned v0.3+)" + location: "recodeflow package dataset registry" + purpose: "Unified discovery of all datasets in ecosystem" + scope: "Mock, development, and production datasets" + status: "Future integration" + catalog_format: "Separate YAML following Dublin Core standards" + + example_catalog_entry: + note: > + Example of a complete Dublin Core catalog entry for a MockData-generated + dataset. This demonstrates the schema structure. + + dataset_id: "cchs_2001_i_mock" + dataset_type: "mock_data" + + title: "CCHS 2001 Iteration Mock Dataset" + + source_survey: + name: "Canadian Community Health Survey (CCHS)" + cycle: "2001" + iteration: "i" + abbreviation: "CCHS 2001" + + description: > + Mock data generated to replicate the structure and distributions of + CCHS 2001 iteration. Used for testing cchsflow harmonisation workflows + and recodeflow transformations. + + creator: + - name: "Big Life Lab" + affiliation: "University of Ottawa" + + date: + issued: "2025-11-01" + coverage: "2001" + + subject: + - "Canadian Community Health Survey" + - "health survey" + - "mock data" + - "testing data" + + type: "Mock Dataset" + + format: "CSV" + + file_location: "inst/examples/demport/mock_cchs2001_i.csv" + + identifier: + - type: "dataset_id" + value: "cchs_2001_i" + + relation: + - type: "IsPartOf" + identifier: "MockData" + - type: "IsDerivedFrom" + identifier: "cchsflow" + + rights: "Open Source" + + technical_details: + n_rows: "variable" + generation_method: "metadata-driven" + metadata_source: "cchsflow variables.csv and variable_details.csv" + contamination_model: "two-step (distribution + corruption)" + reproducible: true + + usage_notes: > + MockData focuses on GENERATION capabilities, not dataset storage. + Users generate their own mock datasets as needed. Minimal examples + are included for demonstration only. Future integration with recodeflow + dataset registry will provide comprehensive cataloging across the ecosystem. + +# Package information + +package: + name: MockData + version: 0.2.0 + repository: https://github.com/Big-Life-Lab/mock-data + documentation: https://big-life-lab.github.io/mock-data + + key_functions: + - read_mock_data_config() + - read_mock_data_config_details() + - validate_mock_data_config() + - validate_mock_data_config_details() + - generate_from_config() + - get_study_metadata() + - get_enabled_variables() + - get_variables_by_role() + +# Status and maintenance + +schema_status: + status: active + created: 2025-11-01 + last_updated: 2025-11-01 + maintainer: Big Life Lab + review_frequency: annual + + changelog: + 0.2.0: + date: 2025-11-01 + changes: + - Consolidated all schema specifications into single file + - Merged standalone mock_data_config.yaml and mock_data_config_details.yaml + - Integrated datasets_catalog.yaml schema (Dublin Core metadata fields) + - Added comprehensive recEnd_standardized_values documentation + - Enhanced contamination_model specifications with step-by-step examples + - Expanded role_patterns with complete taxonomy + - Added special_variables documentation (metadata, survival) + - Added dataset_catalog integration section with recodeflow registry reference + - Removed verbose code examples (belong in vignettes) + - Removed harmonized data priority rules (not applicable to raw mock data) + - Made missing codes dataset-agnostic (examples of common patterns, not prescriptive) + - Clarified categorical categories can be numeric, character, or mixed values + - Single source of truth for all MockData configuration structure diff --git a/inst/metadata/schemas/templates.yaml b/inst/metadata/schemas/templates.yaml deleted file mode 100644 index ce4d7f3..0000000 --- a/inst/metadata/schemas/templates.yaml +++ /dev/null @@ -1,201 +0,0 @@ -schema_version: "0.1" -schema_date: "2025-01-01" -description: "Template variable system documentation and validation rules" - -template_system_schema: - title: "Template Variable System" - description: "Schema for template variable inheritance and validation in recodeflow development" - version: "0.1" - - # How to identify template definitions - template_definitions: - marker_field: "templateVariable" - marker_values: ["Yes"] - required_fields: - - "variable" # Template must have a name (serves as template identifier) - - "typeEnd" # Template must define output type - - "recStart" # Template must define source values - - "recEnd" # Template must define target values - - # How template inheritance works - template_inheritance: - reference_field: "templateVariable" - reference_pattern: "template_name" # References existing template by variable name - required_fields: - - "variable" # Using variable must have unique name - - "variableStart" # Using variable must define source mapping - inheritance_rules: - - "Template recoding rules (recStart/recEnd) are inherited" - - "Using variable defines its own source mapping (variableStart)" - - "Type information (typeEnd/typeStart) can be inherited or overridden" - - # Validation rules for template system - validation_rules: - template_existence: - description: "Referenced templates must exist in the same variable_details file" - rule: "If templateVariable != 'Yes' and templateVariable != 'No', then variable with that name and templateVariable = 'Yes' must exist" - - circular_references: - description: "Templates cannot reference other templates" - rule: "If templateVariable = 'Yes', then variable cannot reference another template" - - consistent_typing: - description: "Template usage should maintain type consistency" - rule: "Variables using templates should have compatible typeEnd values" - - # Examples for documentation - examples: - simple_template: - description: "Basic language template example" - template_definition: - variable: "lang" - templateVariable: "Yes" - typeEnd: "cat" - recStart: ["english", "french"] - recEnd: ["1", "2"] - - template_usage: - variable: "primary_lang" - templateVariable: "lang" - variableStart: "[PL]" - # Inherits: typeEnd="cat", recStart/recEnd mappings - -# Comprehensive Versioning System -versioning_system: - title: "Comprehensive Metadata Versioning Framework" - description: "Unified versioning approach across variables, variable_details, and functions" - - # Core versioning fields used across all metadata - core_versioning_fields: - version: - description: "Semantic version number (e.g., 3.0.0)" - format: "MAJOR.MINOR.PATCH" - rules: - - "MAJOR: Breaking changes or major functionality additions" - - "MINOR: New features, enhanced functionality, backward compatible" - - "PATCH: Bug fixes, documentation updates, minor improvements" - examples: - - "3.0.0: Major infrastructure release with BMI function modernization and validation architecture" - - "2.1.1: Patch release with bug fixes" - - lastUpdated: - description: "ISO date when item was last modified (YYYY-MM-DD)" - format: "date" - usage: "Track when changes were made for collaboration and maintenance" - examples: - - "2025-06-30: Release date for v3.0.0 changes" - - "2024-01-01: Earlier date for stable v2.1.0 items" - - harmonizationStatus: - description: "Current status in harmonization workflow" - enum: - - "development": "Still being developed or tested" - - "active": "Ready for production use" - - "deprecated": "No longer recommended, replaced by newer version" - - "not_harmonizable": "Cannot be harmonized across sources" - - "pending_review": "Needs review before finalization" - usage: "Track progress and readiness of harmonization work" - - reviewNotes: - description: "Documentation of changes, decisions, and rationale" - format: "string" - usage: "Document what changed, why, and any important considerations" - examples: - - "Enhanced with expanded database support and improved metadata" - - "New variable added in v3.0.0 release" - - "Major refactoring with tidyverse modernization" - - # Application across different metadata types - metadata_applications: - variables_csv: - location: "inst/extdata/variables.csv" - versioning_columns: ["version", "lastUpdated", "harmonizationStatus", "reviewNotes"] - usage: "Track variable definition changes and enhancements" - - variable_details_csv: - location: "inst/extdata/variable_details.csv" - versioning_columns: ["version", "lastUpdated", "harmonizationStatus", "reviewNotes"] - usage: "Track detailed mapping and processing rule changes" - - function_metadata: - location: "inst/metadata/function_metadata.yaml" - versioning_fields: ["version", "lastUpdated", "harmonizationStatus", "reviewNotes"] - usage: "Track R function implementations and major refactoring" - - # Best practices for versioning - best_practices: - semantic_versioning: - - "Use semantic versioning consistently across all metadata" - - "Coordinate version numbers across related changes" - - "Document rationale for version increments" - - change_documentation: - - "Always update reviewNotes when making changes" - - "Include what changed and why in reviewNotes" - - "Reference related changes in other metadata files" - - status_management: - - "Use harmonizationStatus to track workflow progress" - - "Move items to 'active' only when thoroughly tested" - - "Mark deprecated items clearly with replacement guidance" - - collaboration: - - "Update lastUpdated dates consistently" - - "Use descriptive reviewNotes for team communication" - - "Coordinate metadata updates across team members" - - # Function versioning in roxygen2 documentation - function_versioning_roxygen: - description: "Structured @note format for function-level version tracking" - format: "v{version}, last updated: {date}, status: {status}, Note: {description}" - pattern: "^v[0-9]+\\.[0-9]+\\.[0-9]+, last updated: [0-9]{4}-[0-9]{2}-[0-9]{2}, status: (development|active|deprecated|pending_review), Note: .+$" - - examples: - major_change: "v3.0.0, last updated: 2025-06-30, status: active, Note: Major refactoring with tidyverse modernization and enhanced validation" - enhancement: "v3.0.0, last updated: 2025-06-30, status: active, Note: Enhanced validation for new BMI variables (HWTDBMI, HWTDHTM, HWTDWTK)" - bug_fix: "v2.1.1, last updated: 2025-01-15, status: active, Note: Fixed edge case handling in age validation" - new_function: "v3.0.0, last updated: 2025-06-30, status: active, Note: New function for 6-item ADL scoring with comprehensive validation" - - usage_instructions: - placement: "Add as @note tag immediately before @export in roxygen2 documentation" - human_labels: - version: "Use semantic version (v3.0.0 format for clarity)" - last_updated: "ISO date format (YYYY-MM-DD)" - status: "One of: development, active, deprecated, pending_review" - Note: "Human-readable description of changes and rationale" - - machine_parsing: - regex_groups: - version: "v([0-9]+\\.[0-9]+\\.[0-9]+)" - date: "last updated: ([0-9]{4}-[0-9]{2}-[0-9]{2})" - status: "status: (development|active|deprecated|pending_review)" - description: "Note: (.+)$" - - # Test versioning adaptation - test_versioning_roxygen: - description: "Adapted @note format for test file version tracking" - format: "Test v{version}, last updated: {date}, status: {status}, Coverage: {description}" - pattern: "^Test v[0-9]+\\.[0-9]+\\.[0-9]+, last updated: [0-9]{4}-[0-9]{2}-[0-9]{2}, status: (passing|failing|pending|needs_update), Coverage: .+$" - - examples: - passing_tests: "Test v3.0.0, last updated: 2025-06-30, status: passing, Coverage: Updated for enhanced BMI validation functions" - updated_tests: "Test v3.0.0, last updated: 2025-06-30, status: passing, Coverage: New tests for ADL_score_6 function with edge cases" - failing_tests: "Test v3.0.0, last updated: 2025-06-30, status: failing, Coverage: Tagged NA handling needs update for smoking functions" - - placement: "Add as comment at top of test file or in specific test blocks" - usage: "Track test compatibility with function versions and coverage scope" - -# Schema evolution roadmap -migration_notes: | - Version 0.1: Initial schema focused on git diff improvements and recodeflow coordination - - Establishes metadata architecture mirroring final recodeflow structure - - Uses established camelCase naming convention throughout - - Documents templateVariable system for active development coordination - - Permissive validation to support ongoing development - - Foundation for seamless migration to recodeflow v1.0 - - Version 0.2: Enhanced versioning and validation system (current) - - Comprehensive versioning framework across all metadata types - - Unified approach for variables, variable_details, and functions - - Professional project management tracking capabilities - - Enhanced collaboration and change documentation diff --git a/inst/metadata/schemas/variable_details.yaml b/inst/metadata/schemas/variable_details.yaml deleted file mode 100644 index d533ece..0000000 --- a/inst/metadata/schemas/variable_details.yaml +++ /dev/null @@ -1,323 +0,0 @@ -schema_version: "1.0.0" -schema_date: "2025-06-22" -description: "Variable details schema for recodeflow - defines transformation rules and recoding specifications for harmonizing data across multiple sources." -registry_file: "metadata_registry.yaml" - -# Note: Shared specifications (CSV format, tier system, validation patterns, etc.) -# are defined in metadata_registry.yaml to maintain DRY principles - -variable_details_schema: - title: "Variable details configuration" - description: "Defines value-level transformations, recoding logic, and categorical mappings for data harmonization projects." - - id_column_name: "dummyVariable" - - # Column order based on cchsflow production + recodeflow extensions - expected_column_order: - # Core fields (positions 1-16) - cchsflow production compatibility - - "variable" - - "dummyVariable" - - "typeEnd" - - "databaseStart" - - "variableStart" - - "typeStart" - - "recEnd" - - "numValidCat" - - "catLabel" - - "catLabelLong" - - "units" - - "recStart" - - "catStartLabel" - - "variableStartShortLabel" - - "variableStartLabel" - - "notes" - # Extension fields (positions 17+) - - "templateVariable" - # Versioning fields (far right) - - "version" - - "lastUpdated" - - "status" - - "reviewNotes" - - # Field definitions organized by tier - fields: - # ============================================================================ - # CORE FIELDS - Essential for any recodeflow project - # ============================================================================ - - - name: "variable" - title: "Variable name" - description: "Name of the harmonized variable being created." - type: "string" - tier: "core" - constraints: - pattern: "^[a-zA-Z_][a-zA-Z0-9_]*$" - foreign_key: "variables.csv:variable" - notes: | - This should match a variable name defined in your variables.csv file. - Use descriptive names that clearly indicate what the variable represents. - - - name: "dummyVariable" - title: "Statistical dummy variable" - description: "Dummy variable names for statistical analyses." - type: "string" - tier: "core" - constraints: - pattern_reference: "See metadata_registry.yaml dummy_variable_patterns for naming guidelines" - notes: | - Statistical dummy variables for regression and analysis purposes. - Only used for categorical variables. Not intended as unique row identifiers. - - Recommended patterns for categorical variables: - - variable_category (e.g., age_18_24, smoking_current) - - 'N/A' for continuous variables - - For complete patterns and examples, see metadata_registry.yaml dummy_variable_patterns. - - - name: "typeEnd" - title: "Target data type" - description: "Type of the variable after harmonization." - type: "string" - tier: "core" - constraints: - enum: ["cat", "cont"] - notes: | - - "cat" for categorical variables (factors with discrete levels) - - "cont" for continuous variables (numeric measurements) - - - name: "databaseStart" - title: "Source database" - description: "Name of the original database or data source." - type: "string" - tier: "core" - notes: | - Identifies which database this transformation rule applies to. - Examples: "cchs2017_p", "rai_hc_2019", "custom_survey_2024" - - - name: "variableStart" - title: "Source variable name" - description: "Name of the original variable being transformed." - type: "string" - tier: "core" - constraints: - pattern_reference: "See metadata_registry.yaml transformation_patterns for validation rules" - notes: | - Specifies how to find the source data for transformation. - Uses same transformation patterns as variables.yaml variableStart field. - - Supports multiple patterns (case-insensitive): - - Simple reference: [HEIGHT] or [height] - - Database-specific: cchs2017_p::HWT_2 or cchs2017_p::hwt_2 - - Derived variables: DerivedVar::[HEIGHT_CM, WEIGHT_KG] - - Multiple sources: cchs2017_p::VAR1, cchs2019_p::VAR2 - - Complex mixed: cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, [ADL_01] - - For complete validation patterns, see metadata_registry.yaml transformation_patterns. - - - name: "typeStart" - title: "Source data type" - description: "Type of the variable in its original form." - type: "string" - tier: "core" - constraints: - enum: ["cat", "cont", "N/A"] - notes: | - Helps understand the transformation being performed. - Use "N/A" for derived variables or when type doesn't apply. - - - name: "recEnd" - title: "Target value" - description: "The harmonized value after transformation." - type: "string" - tier: "core" - constraints: - pattern: "^([0-9]+|[0-9]+\\.[0-9]+|NA::[ab]|Func::[a-zA-Z_][a-zA-Z0-9_]*|copy)$" - notes: | - Defines what value this rule produces in the harmonized dataset. - Common patterns: - - Categorical codes: "1", "2", "3" (integers only) - - Decimal values: "1.5", "2.75" - - Missing data: "NA::a", "NA::b" - - Functions: "Func::bmi_calculation" - - Copy original: "copy" - - - name: "numValidCat" - title: "Number of valid categories" - description: "Total count of valid (non-missing) categories for categorical variables." - type: "string" - tier: "core" - constraints: - pattern: "^([0-9]+|N/A)$" - notes: | - For categorical variables, specify the total number of meaningful categories. - Use "N/A" for continuous variables or when not applicable. - - - name: "catLabel" - title: "Category label" - description: "Short, display-friendly label for this category." - type: "string" - tier: "core" - notes: | - Brief labels suitable for charts, tables, and user interfaces. - Examples: "Male", "High", "18-24 years" - - - name: "catLabelLong" - title: "Detailed category label" - description: "Comprehensive description for documentation and codebooks." - type: "string" - tier: "core" - notes: | - Full descriptive labels for complete documentation. - Examples: "Body mass index 25.0-29.9 (overweight)", "Valid skip due to survey logic" - - - name: "units" - title: "Measurement units" - description: "Units of measurement for the variable." - type: "string" - tier: "core" - notes: | - Specify units for continuous variables to ensure proper interpretation. - Examples: "kg", "years", "cm", "minutes/day", "score (0-100)" - Leave blank for categorical variables. - - - name: "recStart" - title: "Source value or range" - description: "Original value or condition that triggers this transformation." - type: "string" - tier: "core" - constraints: - pattern_reference: "See metadata_registry.yaml interval_notation for validation rules" - notes: | - Defines what source data matches this transformation rule. - Enhanced interval notation based on real-world validation with 3,577 records. - - Supports comprehensive patterns: - - Single values: "1", "male", "english" - - Closed intervals: "[18.5,24.9]" (includes endpoints) - - Open intervals: "(0,18.5)" (excludes endpoints) - - Half-open: "[25,30)", "(18.5,25]" - - Complex decimals: "[-0.359,1]", "[0.0487,0.1846)" - - Missing data: "NA::a", "NA::b" - - Default case: "else" - - **Derived variables**: "N/A" (for variables computed from other variables) - - **Usage Guidelines for N/A:** - - Function-based derivations: Variables with recEnd="Func::function_name" should have recStart="N/A" - - Non-function derivations: Computed variables without original CCHS forms should have recStart="N/A" - - - name: "catStartLabel" - title: "Source category label" - description: "Label describing the original category being transformed." - type: "string" - tier: "core" - notes: | - Documents what the source category represents in the original data. - Helpful for understanding transformations and maintaining documentation. - - - name: "variableStartShortLabel" - title: "Source variable short label" - description: "Brief label for the source variable." - type: "string" - tier: "core" - notes: | - Abbreviated description of the source variable for compact displays. - - - name: "variableStartLabel" - title: "Source variable label" - description: "Full descriptive label of the source variable." - type: "string" - tier: "core" - notes: | - Complete description of what the source variable measures or represents. - Should match the official documentation from the source database. - - - name: "notes" - title: "Transformation notes" - description: "Additional comments or documentation for this transformation rule." - type: "string" - tier: "core" - notes: | - Use for any special considerations, assumptions, or explanations needed - to understand or maintain this transformation rule. - - # ============================================================================ - # EXTENSION FIELDS - Enhanced functionality - # ============================================================================ - - - name: "templateVariable" - title: "Template system indicator" - description: "Enables reusable transformation patterns to avoid duplication." - type: "string" - tier: "extension" - constraints: - enum: ["Yes", "No", null, ""] - usage_reference: "See metadata_registry.yaml extension_registry for implementation details" - default_value: "No" - notes: | - Reduces duplication for intended purposes: - - 8 variables × 132 categories = 1,056 rows reduced to 138 rows (87% reduction) - - Values: - - "Yes": This row defines a reusable template - - "No": Normal variable (not using templates) - - Template name: This variable extends the named template - - For complete usage guidance and examples, see metadata_registry.yaml extension_registry. - - # ============================================================================ - # VERSIONING FIELDS - Professional project management - # ============================================================================ - - - name: "version" - title: "Version number" - description: "Semantic version of this variable detail definition." - type: "string" - tier: "versioning" - constraints: - pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+$" - notes: | - Track changes to transformation rules using semantic versioning (e.g., 1.0.0). - Increment for changes: major.minor.patch - - - name: "lastUpdated" - title: "Last updated" - description: "Date when this transformation rule was last modified." - type: "string" - tier: "versioning" - format: "date" - constraints: - pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" - notes: | - Use ISO date format: YYYY-MM-DD - Helps track when changes were made for collaboration and maintenance. - - - name: "status" - title: "Variable status" - description: "Current lifecycle status of this variable." - type: "string" - tier: "versioning" - constraints: - enum: ["development", "active", "deprecated", "discontinued", "not_harmonizable", "pending_review"] - notes: | - Track the variable lifecycle: - - "development": Still being developed or tested - - "active": Ready for production use - - "deprecated": Still available but use discouraged, will be removed in future version - - "discontinued": No longer supported, removed from active use - - "not_harmonizable": Cannot be harmonized (document why in reviewNotes) - - "pending_review": Needs review before finalization - - - name: "reviewNotes" - title: "Review notes" - description: "Notes about harmonization decisions and review outcomes." - type: "string" - tier: "versioning" - notes: | - Document decisions, rationale, and any issues discovered during review. - Useful for team collaboration and future reference. - - # Configuration options (schema-specific) - allow_additional_columns: true - extension_schema: null - - # Note: Missing data handling, validation modes, and extensions are defined in metadata_registry.yaml diff --git a/inst/metadata/schemas/variables.yaml b/inst/metadata/schemas/variables.yaml deleted file mode 100644 index 289b340..0000000 --- a/inst/metadata/schemas/variables.yaml +++ /dev/null @@ -1,234 +0,0 @@ -schema_version: "1.0.0" -schema_date: "2025-06-22" -description: "Variables schema for recodeflow - defines structure and metadata for variables.csv files used in data harmonization projects." -registry_file: "metadata_registry.yaml" - -# Note: Shared specifications (CSV format, tier system, validation patterns, etc.) -# are defined in metadata_registry.yaml to maintain DRY principles - -variables_schema: - title: "Variables configuration" - description: "Defines master variable attributes, types, labels, and specifications for harmonization projects." - - id_column_name: "variable" - - # Column order - core fields first, then optional, then versioning - expected_column_order: - # Core fields - essential for any project - - "variable" - - "label" - - "labelLong" - - "variableType" - - "databaseStart" - - "variableStart" - # Optional fields - enhanced documentation - - "subject" - - "section" - - "units" - - "notes" - - "description" - # Extension fields - enhanced functionality - # Currently no extension fields for variables - # Versioning fields - professional workflows - - "version" - - "lastUpdated" - - "status" - - "reviewNotes" - - # Field definitions organized by tier - fields: - # ============================================================================ - # CORE FIELDS - Essential for any recodeflow project - # ============================================================================ - - - name: "variable" - title: "Variable name" - description: "Unique name of the harmonized variable you are creating." - type: "string" - tier: "core" - constraints: - unique: true - pattern: "^[a-zA-Z_][a-zA-Z0-9_]*$" - notes: | - Choose descriptive names that clearly indicate what the variable represents. - Follow R naming conventions: start with letter/underscore, use letters/numbers/underscores only. - Examples: age_group, bmi_category, smoking_status - - - name: "label" - title: "Short label" - description: "Brief, human-readable label for displays and charts." - type: "string" - tier: "core" - notes: | - Keep concise (under 20 characters) for use in charts, tables, and compact displays. - Examples: "Age group", "BMI category", "Income level" - - - name: "labelLong" - title: "Long label" - description: "Detailed description for documentation and codebooks." - type: "string" - tier: "core" - notes: | - Comprehensive description used in data dictionaries and documentation. - Include operational definitions and important context. - Examples: "Body mass index categories based on WHO classification", - "Age at time of interview, grouped into 10-year intervals" - - - name: "variableType" - title: "Variable type" - description: "Whether the variable represents categories or continuous measurements." - type: "string" - tier: "core" - constraints: - enum: ["Categorical", "Continuous"] - notes: | - Determines how rec_with_table() processes the variable: - - "Categorical": Discrete categories or groups (factors with levels) - - "Continuous": Numeric measurements or counts - - - name: "databaseStart" - title: "Source database(s)" - description: "Name(s) of the original database(s) containing this variable's source data." - type: "string" - tier: "core" - notes: | - Identifies which databases contain the source data for this harmonized variable. - Examples: - - Single database: "cchs2017_p", "rai_hc_2019" - - Multiple databases: "cchs2017_p, cchs2019_p, cchs2021_p" - - - name: "variableStart" - title: "Source variable specification" - description: "How to find and combine source data to create this harmonized variable." - type: "string" - tier: "core" - constraints: - pattern_reference: "See metadata_registry.yaml transformation_patterns for validation rules" - notes: | - Specifies the transformation pattern for creating this variable. - Critical for data harmonization workflows - tells rec_with_table() how to find and transform source data. - - Supports multiple patterns (case-insensitive): - - Simple reference: [HEIGHT] or [height] - - Database-specific: cchs2017_p::HWT_2 or cchs2017_p::hwt_2 - - Derived variables: DerivedVar::[HEIGHT_CM, WEIGHT_KG] - - Multiple sources: cchs2017_p::VAR1, cchs2019_p::VAR2 - - Complex mixed: cchs2001_p::RACA_6A, cchs2003_p::RACC_6A, [ADL_01] - - For complete validation patterns and examples, see metadata_registry.yaml transformation_patterns. - - # ============================================================================ - # OPTIONAL FIELDS - Enhanced documentation and organization - # ============================================================================ - - - name: "subject" - title: "Subject area" - description: "Thematic area or domain this variable belongs to." - type: "string" - tier: "optional" - notes: | - Groups variables by topic for better organization. - Examples: "Demographics", "Health behaviors", "Social determinants", "Physical measures" - - - name: "section" - title: "Survey section" - description: "Specific section or module where this variable originates." - type: "string" - tier: "optional" - notes: | - Identifies the source questionnaire section or data collection module. - Examples: "Core demographics", "Health status", "Physical activity module" - - - name: "units" - title: "Measurement units" - description: "Units of measurement for continuous variables." - type: "string" - tier: "optional" - notes: | - Essential for continuous variables to ensure proper interpretation. - Examples: "kg", "years", "cm", "minutes/day", "score (0-100)" - Leave blank for categorical variables. - - - name: "notes" - title: "General notes" - description: "Additional comments or important information about this variable." - type: "string" - tier: "optional" - notes: | - Use for any special considerations, limitations, or usage notes. - Examples: methodology notes, data quality issues, interpretation guidance. - - - name: "description" - title: "Detailed description" - description: "Comprehensive definition including methodology and operational details." - type: "string" - tier: "optional" - notes: | - Full technical description including how the variable is constructed, - any assumptions made, and methodological considerations. - - # ============================================================================ - # VERSIONING FIELDS - Best-practice project management - # ============================================================================ - - - name: "version" - title: "Version number" - description: "Semantic version of this variable definition." - type: "string" - tier: "versioning" - constraints: - pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+$" - notes: | - Track changes using semantic versioning (e.g., 1.0.0). - Increment for changes: major.minor.patch - - - name: "lastUpdated" - title: "Last updated" - description: "Date when this variable definition was last modified." - type: "string" - tier: "versioning" - format: "date" - constraints: - pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" - notes: | - Use ISO date format: YYYY-MM-DD - Helps track when changes were made for collaboration and maintenance. - - - name: "status" - title: "Variable status" - description: "Current lifecycle status of this variable." - type: "string" - tier: "versioning" - constraints: - enum: ["development", "active", "deprecated", "discontinued", "not_harmonizable", "pending_review"] - notes: | - Track the variable lifecycle: - - "development": Still being developed or tested - - "active": Ready for production use - - "deprecated": Still available but use discouraged, will be removed in future version - - "discontinued": No longer supported, removed from active use - - "not_harmonizable": Cannot be harmonized (document why in reviewNotes) - - "pending_review": Needs review before finalization - - - name: "reviewNotes" - title: "Review notes" - description: "Notes about harmonization decisions and review outcomes." - type: "string" - tier: "versioning" - notes: | - Document decisions, rationale, and any issues discovered during review. - Useful for team collaboration and future reference. - - # Configuration options (schema-specific) - allow_additional_columns: true - extension_schema: null - - # Note: Missing data handling, validation modes, and extensions are defined in metadata_registry.yaml - -a) Step 1 and 2 probably should be combined: essentially "clean" and "handle" with one function call. -b) If we are smart, we probably don't need to specify "continuous_pattern". We alread be smart ;), and/or there are a few ways we can address this. -c) Step 4 doesn't need to change, except we can probalby remove "continuous_pattern", or at least explore that. -d) that leaves us with step 3 -- the actual calcualtion. The .default looks pretty good to me. Perhaps a bit verbose for sure. I've been tempted to say we should have cleaned$HWTGWTC (skipping the _clean) but I've been talked out of that. I still find cleaned$var_clean repeative and a mouthful, and cleaned$var says to me it is mutated from var, but I am be on my own thinking that. -e) that leaves us with the last part "check$is_missing(cleaned$HWTGHTM_clean) | check$is_missing(cleaned$HWTGWTK_clean) ~ check$which_missing(cleaned$HWTGHTM_clean, cleaned$HWTGWTK_clean)," -That is a mouthful and not easy for people to write or follow. My question to you (and me): is there a way to make this simpler? If not, we may still be ok. - diff --git a/pkgdown/extra.css b/pkgdown/extra.css new file mode 100644 index 0000000..998ccd2 --- /dev/null +++ b/pkgdown/extra.css @@ -0,0 +1,33 @@ +/* Quarto-style callouts for pkgdown */ +/* Styles blockquotes in article content to look like Quarto callout-note */ + +.page-body blockquote { + margin: 1.5em 0; + padding: 1em 1em 1em 3em; + border-left: 5px solid #2196F3; + background-color: #e3f2fd; + border-radius: 0.25rem; + position: relative; +} + +.page-body blockquote::before { + content: "ℹ️"; + position: absolute; + left: 0.75em; + top: 1em; + font-size: 1.2em; +} + +.page-body blockquote p:first-child { + margin-top: 0; + font-weight: 600; + color: #1976D2; +} + +.page-body blockquote p { + margin-bottom: 0.5em; +} + +.page-body blockquote p:last-child { + margin-bottom: 0; +} diff --git a/renv.lock b/renv.lock new file mode 100644 index 0000000..e6a6d32 --- /dev/null +++ b/renv.lock @@ -0,0 +1,4617 @@ +{ + "R": { + "Version": "4.4.2", + "Repositories": [ + { + "Name": "CRAN", + "URL": "https://cloud.r-project.org" + } + ] + }, + "Packages": { + "KernSmooth": { + "Package": "KernSmooth", + "Version": "2.23-24", + "Source": "Repository", + "Priority": "recommended", + "Date": "2024-05-16", + "Title": "Functions for Kernel Smoothing Supporting Wand & Jones (1995)", + "Authors@R": "c(person(\"Matt\", \"Wand\", role = \"aut\", email = \"Matt.Wand@uts.edu.au\"), person(\"Cleve\", \"Moler\", role = \"ctb\", comment = \"LINPACK routines in src/d*\"), person(\"Brian\", \"Ripley\", role = c(\"trl\", \"cre\", \"ctb\"), email = \"ripley@stats.ox.ac.uk\", comment = \"R port and updates\"))", + "Note": "Maintainers are not available to give advice on using a package they did not author.", + "Depends": [ + "R (>= 2.5.0)", + "stats" + ], + "Suggests": [ + "MASS", + "carData" + ], + "Description": "Functions for kernel smoothing (and density estimation) corresponding to the book: Wand, M.P. and Jones, M.C. (1995) \"Kernel Smoothing\".", + "License": "Unlimited", + "ByteCompile": "yes", + "NeedsCompilation": "yes", + "Author": "Matt Wand [aut], Cleve Moler [ctb] (LINPACK routines in src/d*), Brian Ripley [trl, cre, ctb] (R port and updates)", + "Maintainer": "Brian Ripley ", + "Repository": "CRAN" + }, + "MASS": { + "Package": "MASS", + "Version": "7.3-61", + "Source": "Repository", + "Priority": "recommended", + "Date": "2024-06-10", + "Revision": "$Rev: 3657 $", + "Depends": [ + "R (>= 4.4.0)", + "grDevices", + "graphics", + "stats", + "utils" + ], + "Imports": [ + "methods" + ], + "Suggests": [ + "lattice", + "nlme", + "nnet", + "survival" + ], + "Authors@R": "c(person(\"Brian\", \"Ripley\", role = c(\"aut\", \"cre\", \"cph\"), email = \"ripley@stats.ox.ac.uk\"), person(\"Bill\", \"Venables\", role = c(\"aut\", \"cph\")), person(c(\"Douglas\", \"M.\"), \"Bates\", role = \"ctb\"), person(\"Kurt\", \"Hornik\", role = \"trl\", comment = \"partial port ca 1998\"), person(\"Albrecht\", \"Gebhardt\", role = \"trl\", comment = \"partial port ca 1998\"), person(\"David\", \"Firth\", role = \"ctb\", comment = \"support functions for polr\"))", + "Description": "Functions and datasets to support Venables and Ripley, \"Modern Applied Statistics with S\" (4th edition, 2002).", + "Title": "Support Functions and Datasets for Venables and Ripley's MASS", + "LazyData": "yes", + "ByteCompile": "yes", + "License": "GPL-2 | GPL-3", + "URL": "http://www.stats.ox.ac.uk/pub/MASS4/", + "Contact": "", + "NeedsCompilation": "yes", + "Author": "Brian Ripley [aut, cre, cph], Bill Venables [aut, cph], Douglas M. Bates [ctb], Kurt Hornik [trl] (partial port ca 1998), Albrecht Gebhardt [trl] (partial port ca 1998), David Firth [ctb] (support functions for polr)", + "Maintainer": "Brian Ripley ", + "Repository": "CRAN" + }, + "Matrix": { + "Package": "Matrix", + "Version": "1.7-1", + "Source": "Repository", + "VersionNote": "do also bump src/version.h, inst/include/Matrix/version.h", + "Date": "2024-10-17", + "Priority": "recommended", + "Title": "Sparse and Dense Matrix Classes and Methods", + "Description": "A rich hierarchy of sparse and dense matrix classes, including general, symmetric, triangular, and diagonal matrices with numeric, logical, or pattern entries. Efficient methods for operating on such matrices, often wrapping the 'BLAS', 'LAPACK', and 'SuiteSparse' libraries.", + "License": "GPL (>= 2) | file LICENCE", + "URL": "https://Matrix.R-forge.R-project.org", + "BugReports": "https://R-forge.R-project.org/tracker/?atid=294&group_id=61", + "Contact": "Matrix-authors@R-project.org", + "Authors@R": "c(person(\"Douglas\", \"Bates\", role = \"aut\", comment = c(ORCID = \"0000-0001-8316-9503\")), person(\"Martin\", \"Maechler\", role = c(\"aut\", \"cre\"), email = \"mmaechler+Matrix@gmail.com\", comment = c(ORCID = \"0000-0002-8685-9910\")), person(\"Mikael\", \"Jagan\", role = \"aut\", comment = c(ORCID = \"0000-0002-3542-2938\")), person(\"Timothy A.\", \"Davis\", role = \"ctb\", comment = c(ORCID = \"0000-0001-7614-6899\", \"SuiteSparse libraries\", \"collaborators listed in dir(system.file(\\\"doc\\\", \\\"SuiteSparse\\\", package=\\\"Matrix\\\"), pattern=\\\"License\\\", full.names=TRUE, recursive=TRUE)\")), person(\"George\", \"Karypis\", role = \"ctb\", comment = c(ORCID = \"0000-0003-2753-1437\", \"METIS library\", \"Copyright: Regents of the University of Minnesota\")), person(\"Jason\", \"Riedy\", role = \"ctb\", comment = c(ORCID = \"0000-0002-4345-4200\", \"GNU Octave's condest() and onenormest()\", \"Copyright: Regents of the University of California\")), person(\"Jens\", \"Oehlschlägel\", role = \"ctb\", comment = \"initial nearPD()\"), person(\"R Core Team\", role = \"ctb\", comment = \"base R's matrix implementation\"))", + "Depends": [ + "R (>= 4.4.0)", + "methods" + ], + "Imports": [ + "grDevices", + "graphics", + "grid", + "lattice", + "stats", + "utils" + ], + "Suggests": [ + "MASS", + "datasets", + "sfsmisc", + "tools" + ], + "Enhances": [ + "SparseM", + "graph" + ], + "LazyData": "no", + "LazyDataNote": "not possible, since we use data/*.R and our S4 classes", + "BuildResaveData": "no", + "Encoding": "UTF-8", + "NeedsCompilation": "yes", + "Author": "Douglas Bates [aut] (), Martin Maechler [aut, cre] (), Mikael Jagan [aut] (), Timothy A. Davis [ctb] (, SuiteSparse libraries, collaborators listed in dir(system.file(\"doc\", \"SuiteSparse\", package=\"Matrix\"), pattern=\"License\", full.names=TRUE, recursive=TRUE)), George Karypis [ctb] (, METIS library, Copyright: Regents of the University of Minnesota), Jason Riedy [ctb] (, GNU Octave's condest() and onenormest(), Copyright: Regents of the University of California), Jens Oehlschlägel [ctb] (initial nearPD()), R Core Team [ctb] (base R's matrix implementation)", + "Maintainer": "Martin Maechler ", + "Repository": "CRAN" + }, + "R6": { + "Package": "R6", + "Version": "2.6.1", + "Source": "Repository", + "Title": "Encapsulated Classes with Reference Semantics", + "Authors@R": "c( person(\"Winston\", \"Chang\", , \"winston@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Creates classes with reference semantics, similar to R's built-in reference classes. Compared to reference classes, R6 classes are simpler and lighter-weight, and they are not built on S4 classes so they do not require the methods package. These classes allow public and private members, and they support inheritance, even when the classes are defined in different packages.", + "License": "MIT + file LICENSE", + "URL": "https://r6.r-lib.org, https://github.com/r-lib/R6", + "BugReports": "https://github.com/r-lib/R6/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Suggests": [ + "lobstr", + "testthat (>= 3.0.0)" + ], + "Config/Needs/website": "tidyverse/tidytemplate, ggplot2, microbenchmark, scales", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Winston Chang [aut, cre], Posit Software, PBC [cph, fnd]", + "Maintainer": "Winston Chang ", + "Repository": "CRAN" + }, + "Rcpp": { + "Package": "Rcpp", + "Version": "1.1.0", + "Source": "Repository", + "Title": "Seamless R and C++ Integration", + "Date": "2025-07-01", + "Authors@R": "c(person(\"Dirk\", \"Eddelbuettel\", role = c(\"aut\", \"cre\"), email = \"edd@debian.org\", comment = c(ORCID = \"0000-0001-6419-907X\")), person(\"Romain\", \"Francois\", role = \"aut\", comment = c(ORCID = \"0000-0002-2444-4226\")), person(\"JJ\", \"Allaire\", role = \"aut\", comment = c(ORCID = \"0000-0003-0174-9868\")), person(\"Kevin\", \"Ushey\", role = \"aut\", comment = c(ORCID = \"0000-0003-2880-7407\")), person(\"Qiang\", \"Kou\", role = \"aut\", comment = c(ORCID = \"0000-0001-6786-5453\")), person(\"Nathan\", \"Russell\", role = \"aut\"), person(\"Iñaki\", \"Ucar\", role = \"aut\", comment = c(ORCID = \"0000-0001-6403-5550\")), person(\"Doug\", \"Bates\", role = \"aut\", comment = c(ORCID = \"0000-0001-8316-9503\")), person(\"John\", \"Chambers\", role = \"aut\"))", + "Description": "The 'Rcpp' package provides R functions as well as C++ classes which offer a seamless integration of R and C++. Many R data types and objects can be mapped back and forth to C++ equivalents which facilitates both writing of new code as well as easier integration of third-party libraries. Documentation about 'Rcpp' is provided by several vignettes included in this package, via the 'Rcpp Gallery' site at , the paper by Eddelbuettel and Francois (2011, ), the book by Eddelbuettel (2013, ) and the paper by Eddelbuettel and Balamuta (2018, ); see 'citation(\"Rcpp\")' for details.", + "Imports": [ + "methods", + "utils" + ], + "Suggests": [ + "tinytest", + "inline", + "rbenchmark", + "pkgKitten (>= 0.1.2)" + ], + "URL": "https://www.rcpp.org, https://dirk.eddelbuettel.com/code/rcpp.html, https://github.com/RcppCore/Rcpp", + "License": "GPL (>= 2)", + "BugReports": "https://github.com/RcppCore/Rcpp/issues", + "MailingList": "rcpp-devel@lists.r-forge.r-project.org", + "RoxygenNote": "6.1.1", + "Encoding": "UTF-8", + "NeedsCompilation": "yes", + "Author": "Dirk Eddelbuettel [aut, cre] (ORCID: ), Romain Francois [aut] (ORCID: ), JJ Allaire [aut] (ORCID: ), Kevin Ushey [aut] (ORCID: ), Qiang Kou [aut] (ORCID: ), Nathan Russell [aut], Iñaki Ucar [aut] (ORCID: ), Doug Bates [aut] (ORCID: ), John Chambers [aut]", + "Maintainer": "Dirk Eddelbuettel ", + "Repository": "CRAN" + }, + "askpass": { + "Package": "askpass", + "Version": "1.2.1", + "Source": "Repository", + "Type": "Package", + "Title": "Password Entry Utilities for R, Git, and SSH", + "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", + "Description": "Cross-platform utilities for prompting the user for credentials or a passphrase, for example to authenticate with a server or read a protected key. Includes native programs for MacOS and Windows, hence no 'tcltk' is required. Password entry can be invoked in two different ways: directly from R via the askpass() function, or indirectly as password-entry back-end for 'ssh-agent' or 'git-credential' via the SSH_ASKPASS and GIT_ASKPASS environment variables. Thereby the user can be prompted for credentials or a passphrase if needed when R calls out to git or ssh.", + "License": "MIT + file LICENSE", + "URL": "https://r-lib.r-universe.dev/askpass", + "BugReports": "https://github.com/r-lib/askpass/issues", + "Encoding": "UTF-8", + "Imports": [ + "sys (>= 2.1)" + ], + "RoxygenNote": "7.2.3", + "Suggests": [ + "testthat" + ], + "Language": "en-US", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] ()", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, + "base64enc": { + "Package": "base64enc", + "Version": "0.1-3", + "Source": "Repository", + "Title": "Tools for base64 encoding", + "Author": "Simon Urbanek ", + "Maintainer": "Simon Urbanek ", + "Depends": [ + "R (>= 2.9.0)" + ], + "Enhances": [ + "png" + ], + "Description": "This package provides tools for handling base64 encoding. It is more flexible than the orphaned base64 package.", + "License": "GPL-2 | GPL-3", + "URL": "http://www.rforge.net/base64enc", + "NeedsCompilation": "yes", + "Repository": "CRAN" + }, + "bit": { + "Package": "bit", + "Version": "4.6.0", + "Source": "Repository", + "Title": "Classes and Methods for Fast Memory-Efficient Boolean Selections", + "Authors@R": "c( person(\"Michael\", \"Chirico\", email = \"MichaelChirico4@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Jens\", \"Oehlschlägel\", role = \"aut\"), person(\"Brian\", \"Ripley\", role = \"ctb\") )", + "Depends": [ + "R (>= 3.4.0)" + ], + "Suggests": [ + "testthat (>= 3.0.0)", + "roxygen2", + "knitr", + "markdown", + "rmarkdown", + "microbenchmark", + "bit64 (>= 4.0.0)", + "ff (>= 4.0.0)" + ], + "Description": "Provided are classes for boolean and skewed boolean vectors, fast boolean methods, fast unique and non-unique integer sorting, fast set operations on sorted and unsorted sets of integers, and foundations for ff (range index, compression, chunked processing).", + "License": "GPL-2 | GPL-3", + "LazyLoad": "yes", + "ByteCompile": "yes", + "Encoding": "UTF-8", + "URL": "https://github.com/r-lib/bit", + "VignetteBuilder": "knitr, rmarkdown", + "RoxygenNote": "7.3.2", + "Config/testthat/edition": "3", + "NeedsCompilation": "yes", + "Author": "Michael Chirico [aut, cre], Jens Oehlschlägel [aut], Brian Ripley [ctb]", + "Maintainer": "Michael Chirico ", + "Repository": "CRAN" + }, + "bit64": { + "Package": "bit64", + "Version": "4.6.0-1", + "Source": "Repository", + "Title": "A S3 Class for Vectors of 64bit Integers", + "Authors@R": "c( person(\"Michael\", \"Chirico\", email = \"michaelchirico4@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Jens\", \"Oehlschlägel\", role = \"aut\"), person(\"Leonardo\", \"Silvestri\", role = \"ctb\"), person(\"Ofek\", \"Shilon\", role = \"ctb\") )", + "Depends": [ + "R (>= 3.4.0)", + "bit (>= 4.0.0)" + ], + "Description": "Package 'bit64' provides serializable S3 atomic 64bit (signed) integers. These are useful for handling database keys and exact counting in +-2^63. WARNING: do not use them as replacement for 32bit integers, integer64 are not supported for subscripting by R-core and they have different semantics when combined with double, e.g. integer64 + double => integer64. Class integer64 can be used in vectors, matrices, arrays and data.frames. Methods are available for coercion from and to logicals, integers, doubles, characters and factors as well as many elementwise and summary functions. Many fast algorithmic operations such as 'match' and 'order' support inter- active data exploration and manipulation and optionally leverage caching.", + "License": "GPL-2 | GPL-3", + "LazyLoad": "yes", + "ByteCompile": "yes", + "URL": "https://github.com/r-lib/bit64", + "Encoding": "UTF-8", + "Imports": [ + "graphics", + "methods", + "stats", + "utils" + ], + "Suggests": [ + "testthat (>= 3.0.3)", + "withr" + ], + "Config/testthat/edition": "3", + "Config/needs/development": "testthat", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Michael Chirico [aut, cre], Jens Oehlschlägel [aut], Leonardo Silvestri [ctb], Ofek Shilon [ctb]", + "Maintainer": "Michael Chirico ", + "Repository": "CRAN" + }, + "boot": { + "Package": "boot", + "Version": "1.3-31", + "Source": "Repository", + "Priority": "recommended", + "Date": "2024-08-28", + "Authors@R": "c(person(\"Angelo\", \"Canty\", role = \"aut\", email = \"cantya@mcmaster.ca\", comment = \"author of original code for S\"), person(\"Brian\", \"Ripley\", role = c(\"aut\", \"trl\"), email = \"ripley@stats.ox.ac.uk\", comment = \"conversion to R, maintainer 1999--2022, author of parallel support\"), person(\"Alessandra R.\", \"Brazzale\", role = c(\"ctb\", \"cre\"), email = \"brazzale@stat.unipd.it\", comment = \"minor bug fixes\"))", + "Maintainer": "Alessandra R. Brazzale ", + "Note": "Maintainers are not available to give advice on using a package they did not author.", + "Description": "Functions and datasets for bootstrapping from the book \"Bootstrap Methods and Their Application\" by A. C. Davison and D. V. Hinkley (1997, CUP), originally written by Angelo Canty for S.", + "Title": "Bootstrap Functions (Originally by Angelo Canty for S)", + "Depends": [ + "R (>= 3.0.0)", + "graphics", + "stats" + ], + "Suggests": [ + "MASS", + "survival" + ], + "LazyData": "yes", + "ByteCompile": "yes", + "License": "Unlimited", + "NeedsCompilation": "no", + "Author": "Angelo Canty [aut] (author of original code for S), Brian Ripley [aut, trl] (conversion to R, maintainer 1999--2022, author of parallel support), Alessandra R. Brazzale [ctb, cre] (minor bug fixes)", + "Repository": "CRAN" + }, + "brew": { + "Package": "brew", + "Version": "1.0-10", + "Source": "Repository", + "Type": "Package", + "Title": "Templating Framework for Report Generation", + "Authors@R": "c( person(\"Jeffrey\", \"Horner\", role = c(\"aut\", \"cph\")), person(\"Greg\", \"Hunt\", , \"greg@firmansyah.com\", role = c(\"aut\", \"cre\", \"cph\")) )", + "Description": "Implements a templating framework for mixing text and R code for report generation. brew template syntax is similar to PHP, Ruby's erb module, Java Server Pages, and Python's psp module.", + "License": "GPL (>= 2)", + "URL": "https://github.com/gregfrog/brew", + "BugReports": "https://github.com/gregfrog/brew/issues", + "Suggests": [ + "testthat (>= 3.0.0)" + ], + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "Repository": "CRAN", + "NeedsCompilation": "no", + "Author": "Jeffrey Horner [aut, cph], Greg Hunt [aut, cre, cph]", + "Maintainer": "Greg Hunt " + }, + "brio": { + "Package": "brio", + "Version": "1.1.5", + "Source": "Repository", + "Title": "Basic R Input Output", + "Authors@R": "c( person(\"Jim\", \"Hester\", role = \"aut\", comment = c(ORCID = \"0000-0002-2739-7082\")), person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(given = \"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Functions to handle basic input output, these functions always read and write UTF-8 (8-bit Unicode Transformation Format) files and provide more explicit control over line endings.", + "License": "MIT + file LICENSE", + "URL": "https://brio.r-lib.org, https://github.com/r-lib/brio", + "BugReports": "https://github.com/r-lib/brio/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Suggests": [ + "covr", + "testthat (>= 3.0.0)" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.2.3", + "NeedsCompilation": "yes", + "Author": "Jim Hester [aut] (), Gábor Csárdi [aut, cre], Posit Software, PBC [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "bslib": { + "Package": "bslib", + "Version": "0.9.0", + "Source": "Repository", + "Title": "Custom 'Bootstrap' 'Sass' Themes for 'shiny' and 'rmarkdown'", + "Authors@R": "c( person(\"Carson\", \"Sievert\", , \"carson@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-4958-2844\")), person(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"), person(\"Garrick\", \"Aden-Buie\", , \"garrick@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0002-7111-0077\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(, \"Bootstrap contributors\", role = \"ctb\", comment = \"Bootstrap library\"), person(, \"Twitter, Inc\", role = \"cph\", comment = \"Bootstrap library\"), person(\"Javi\", \"Aguilar\", role = c(\"ctb\", \"cph\"), comment = \"Bootstrap colorpicker library\"), person(\"Thomas\", \"Park\", role = c(\"ctb\", \"cph\"), comment = \"Bootswatch library\"), person(, \"PayPal\", role = c(\"ctb\", \"cph\"), comment = \"Bootstrap accessibility plugin\") )", + "Description": "Simplifies custom 'CSS' styling of both 'shiny' and 'rmarkdown' via 'Bootstrap' 'Sass'. Supports 'Bootstrap' 3, 4 and 5 as well as their various 'Bootswatch' themes. An interactive widget is also provided for previewing themes in real time.", + "License": "MIT + file LICENSE", + "URL": "https://rstudio.github.io/bslib/, https://github.com/rstudio/bslib", + "BugReports": "https://github.com/rstudio/bslib/issues", + "Depends": [ + "R (>= 2.10)" + ], + "Imports": [ + "base64enc", + "cachem", + "fastmap (>= 1.1.1)", + "grDevices", + "htmltools (>= 0.5.8)", + "jquerylib (>= 0.1.3)", + "jsonlite", + "lifecycle", + "memoise (>= 2.0.1)", + "mime", + "rlang", + "sass (>= 0.4.9)" + ], + "Suggests": [ + "bsicons", + "curl", + "fontawesome", + "future", + "ggplot2", + "knitr", + "magrittr", + "rappdirs", + "rmarkdown (>= 2.7)", + "shiny (> 1.8.1)", + "testthat", + "thematic", + "tools", + "utils", + "withr", + "yaml" + ], + "Config/Needs/deploy": "BH, chiflights22, colourpicker, commonmark, cpp11, cpsievert/chiflights22, cpsievert/histoslider, dplyr, DT, ggplot2, ggridges, gt, hexbin, histoslider, htmlwidgets, lattice, leaflet, lubridate, markdown, modelr, plotly, reactable, reshape2, rprojroot, rsconnect, rstudio/shiny, scales, styler, tibble", + "Config/Needs/routine": "chromote, desc, renv", + "Config/Needs/website": "brio, crosstalk, dplyr, DT, ggplot2, glue, htmlwidgets, leaflet, lorem, palmerpenguins, plotly, purrr, rprojroot, rstudio/htmltools, scales, stringr, tidyr, webshot2", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", + "Config/testthat/start-first": "zzzz-bs-sass, fonts, zzz-precompile, theme-*, rmd-*", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "Collate": "'accordion.R' 'breakpoints.R' 'bs-current-theme.R' 'bs-dependencies.R' 'bs-global.R' 'bs-remove.R' 'bs-theme-layers.R' 'bs-theme-preset-bootswatch.R' 'bs-theme-preset-brand.R' 'bs-theme-preset-builtin.R' 'bs-theme-preset.R' 'utils.R' 'bs-theme-preview.R' 'bs-theme-update.R' 'bs-theme.R' 'bslib-package.R' 'buttons.R' 'card.R' 'deprecated.R' 'files.R' 'fill.R' 'imports.R' 'input-dark-mode.R' 'input-switch.R' 'layout.R' 'nav-items.R' 'nav-update.R' 'navbar_options.R' 'navs-legacy.R' 'navs.R' 'onLoad.R' 'page.R' 'popover.R' 'precompiled.R' 'print.R' 'shiny-devmode.R' 'sidebar.R' 'staticimports.R' 'tooltip.R' 'utils-deps.R' 'utils-shiny.R' 'utils-tags.R' 'value-box.R' 'version-default.R' 'versions.R'", + "NeedsCompilation": "no", + "Author": "Carson Sievert [aut, cre] (), Joe Cheng [aut], Garrick Aden-Buie [aut] (), Posit Software, PBC [cph, fnd], Bootstrap contributors [ctb] (Bootstrap library), Twitter, Inc [cph] (Bootstrap library), Javi Aguilar [ctb, cph] (Bootstrap colorpicker library), Thomas Park [ctb, cph] (Bootswatch library), PayPal [ctb, cph] (Bootstrap accessibility plugin)", + "Maintainer": "Carson Sievert ", + "Repository": "CRAN" + }, + "cachem": { + "Package": "cachem", + "Version": "1.1.0", + "Source": "Repository", + "Title": "Cache R Objects with Automatic Pruning", + "Description": "Key-value stores with automatic pruning. Caches can limit either their total size or the age of the oldest object (or both), automatically pruning objects to maintain the constraints.", + "Authors@R": "c( person(\"Winston\", \"Chang\", , \"winston@posit.co\", c(\"aut\", \"cre\")), person(family = \"Posit Software, PBC\", role = c(\"cph\", \"fnd\")))", + "License": "MIT + file LICENSE", + "Encoding": "UTF-8", + "ByteCompile": "true", + "URL": "https://cachem.r-lib.org/, https://github.com/r-lib/cachem", + "Imports": [ + "rlang", + "fastmap (>= 1.2.0)" + ], + "Suggests": [ + "testthat" + ], + "RoxygenNote": "7.2.3", + "Config/Needs/routine": "lobstr", + "Config/Needs/website": "pkgdown", + "NeedsCompilation": "yes", + "Author": "Winston Chang [aut, cre], Posit Software, PBC [cph, fnd]", + "Maintainer": "Winston Chang ", + "Repository": "CRAN" + }, + "callr": { + "Package": "callr", + "Version": "3.7.6", + "Source": "Repository", + "Title": "Call R from R", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\", \"cph\"), comment = c(ORCID = \"0000-0001-7098-9676\")), person(\"Winston\", \"Chang\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"Ascent Digital Services\", role = c(\"cph\", \"fnd\")) )", + "Description": "It is sometimes useful to perform a computation in a separate R process, without affecting the current R process at all. This packages does exactly that.", + "License": "MIT + file LICENSE", + "URL": "https://callr.r-lib.org, https://github.com/r-lib/callr", + "BugReports": "https://github.com/r-lib/callr/issues", + "Depends": [ + "R (>= 3.4)" + ], + "Imports": [ + "processx (>= 3.6.1)", + "R6", + "utils" + ], + "Suggests": [ + "asciicast (>= 2.3.1)", + "cli (>= 1.1.0)", + "mockery", + "ps", + "rprojroot", + "spelling", + "testthat (>= 3.2.0)", + "withr (>= 2.3.0)" + ], + "Config/Needs/website": "r-lib/asciicast, glue, htmlwidgets, igraph, tibble, tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.3.1.9000", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [aut, cre, cph] (), Winston Chang [aut], Posit Software, PBC [cph, fnd], Ascent Digital Services [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "class": { + "Package": "class", + "Version": "7.3-22", + "Source": "Repository", + "Priority": "recommended", + "Date": "2023-05-02", + "Depends": [ + "R (>= 3.0.0)", + "stats", + "utils" + ], + "Imports": [ + "MASS" + ], + "Authors@R": "c(person(\"Brian\", \"Ripley\", role = c(\"aut\", \"cre\", \"cph\"), email = \"ripley@stats.ox.ac.uk\"), person(\"William\", \"Venables\", role = \"cph\"))", + "Description": "Various functions for classification, including k-nearest neighbour, Learning Vector Quantization and Self-Organizing Maps.", + "Title": "Functions for Classification", + "ByteCompile": "yes", + "License": "GPL-2 | GPL-3", + "URL": "http://www.stats.ox.ac.uk/pub/MASS4/", + "NeedsCompilation": "yes", + "Author": "Brian Ripley [aut, cre, cph], William Venables [cph]", + "Maintainer": "Brian Ripley ", + "Repository": "CRAN" + }, + "cli": { + "Package": "cli", + "Version": "3.6.5", + "Source": "Repository", + "Title": "Helpers for Developing Command Line Interfaces", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"gabor@posit.co\", role = c(\"aut\", \"cre\")), person(\"Hadley\", \"Wickham\", role = \"ctb\"), person(\"Kirill\", \"Müller\", role = \"ctb\"), person(\"Salim\", \"Brüggemann\", , \"salim-b@pm.me\", role = \"ctb\", comment = c(ORCID = \"0000-0002-5329-5987\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "A suite of tools to build attractive command line interfaces ('CLIs'), from semantic elements: headings, lists, alerts, paragraphs, etc. Supports custom themes via a 'CSS'-like language. It also contains a number of lower level 'CLI' elements: rules, boxes, trees, and 'Unicode' symbols with 'ASCII' alternatives. It support ANSI colors and text styles as well.", + "License": "MIT + file LICENSE", + "URL": "https://cli.r-lib.org, https://github.com/r-lib/cli", + "BugReports": "https://github.com/r-lib/cli/issues", + "Depends": [ + "R (>= 3.4)" + ], + "Imports": [ + "utils" + ], + "Suggests": [ + "callr", + "covr", + "crayon", + "digest", + "glue (>= 1.6.0)", + "grDevices", + "htmltools", + "htmlwidgets", + "knitr", + "methods", + "processx", + "ps (>= 1.3.4.9000)", + "rlang (>= 1.0.2.9003)", + "rmarkdown", + "rprojroot", + "rstudioapi", + "testthat (>= 3.2.0)", + "tibble", + "whoami", + "withr" + ], + "Config/Needs/website": "r-lib/asciicast, bench, brio, cpp11, decor, desc, fansi, prettyunits, sessioninfo, tidyverse/tidytemplate, usethis, vctrs", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Gábor Csárdi [aut, cre], Hadley Wickham [ctb], Kirill Müller [ctb], Salim Brüggemann [ctb] (), Posit Software, PBC [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "clipr": { + "Package": "clipr", + "Version": "0.8.0", + "Source": "Repository", + "Type": "Package", + "Title": "Read and Write from the System Clipboard", + "Authors@R": "c( person(\"Matthew\", \"Lincoln\", , \"matthew.d.lincoln@gmail.com\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-4387-3384\")), person(\"Louis\", \"Maddox\", role = \"ctb\"), person(\"Steve\", \"Simpson\", role = \"ctb\"), person(\"Jennifer\", \"Bryan\", role = \"ctb\") )", + "Description": "Simple utility functions to read from and write to the Windows, OS X, and X11 clipboards.", + "License": "GPL-3", + "URL": "https://github.com/mdlincoln/clipr, http://matthewlincoln.net/clipr/", + "BugReports": "https://github.com/mdlincoln/clipr/issues", + "Imports": [ + "utils" + ], + "Suggests": [ + "covr", + "knitr", + "rmarkdown", + "rstudioapi (>= 0.5)", + "testthat (>= 2.0.0)" + ], + "VignetteBuilder": "knitr", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.1.2", + "SystemRequirements": "xclip (https://github.com/astrand/xclip) or xsel (http://www.vergenet.net/~conrad/software/xsel/) for accessing the X11 clipboard, or wl-clipboard (https://github.com/bugaevc/wl-clipboard) for systems using Wayland.", + "NeedsCompilation": "no", + "Author": "Matthew Lincoln [aut, cre] (), Louis Maddox [ctb], Steve Simpson [ctb], Jennifer Bryan [ctb]", + "Maintainer": "Matthew Lincoln ", + "Repository": "CRAN" + }, + "cluster": { + "Package": "cluster", + "Version": "2.1.6", + "Source": "Repository", + "Date": "2023-11-30", + "Priority": "recommended", + "Title": "\"Finding Groups in Data\": Cluster Analysis Extended Rousseeuw et al.", + "Description": "Methods for Cluster analysis. Much extended the original from Peter Rousseeuw, Anja Struyf and Mia Hubert, based on Kaufman and Rousseeuw (1990) \"Finding Groups in Data\".", + "Maintainer": "Martin Maechler ", + "Authors@R": "c(person(\"Martin\",\"Maechler\", role = c(\"aut\",\"cre\"), email=\"maechler@stat.math.ethz.ch\", comment = c(ORCID = \"0000-0002-8685-9910\")) ,person(\"Peter\", \"Rousseeuw\", role=\"aut\", email=\"peter.rousseeuw@kuleuven.be\", comment = c(\"Fortran original\", ORCID = \"0000-0002-3807-5353\")) ,person(\"Anja\", \"Struyf\", role=\"aut\", comment= \"S original\") ,person(\"Mia\", \"Hubert\", role=\"aut\", email= \"Mia.Hubert@uia.ua.ac.be\", comment = c(\"S original\", ORCID = \"0000-0001-6398-4850\")) ,person(\"Kurt\", \"Hornik\", role=c(\"trl\", \"ctb\"), email=\"Kurt.Hornik@R-project.org\", comment=c(\"port to R; maintenance(1999-2000)\", ORCID=\"0000-0003-4198-9911\")) ,person(\"Matthias\", \"Studer\", role=\"ctb\") ,person(\"Pierre\", \"Roudier\", role=\"ctb\") ,person(\"Juan\", \"Gonzalez\", role=\"ctb\") ,person(\"Kamil\", \"Kozlowski\", role=\"ctb\") ,person(\"Erich\", \"Schubert\", role=\"ctb\", comment = c(\"fastpam options for pam()\", ORCID = \"0000-0001-9143-4880\")) ,person(\"Keefe\", \"Murphy\", role=\"ctb\", comment = \"volume.ellipsoid({d >= 3})\") #not yet ,person(\"Fischer-Rasmussen\", \"Kasper\", role = \"ctb\", comment = \"Gower distance for CLARA\") )", + "Depends": [ + "R (>= 3.5.0)" + ], + "Imports": [ + "graphics", + "grDevices", + "stats", + "utils" + ], + "Suggests": [ + "MASS", + "Matrix" + ], + "SuggestsNote": "MASS: two examples using cov.rob() and mvrnorm(); Matrix tools for testing", + "Enhances": [ + "mvoutlier", + "fpc", + "ellipse", + "sfsmisc" + ], + "EnhancesNote": "xref-ed in man/*.Rd", + "LazyLoad": "yes", + "LazyData": "yes", + "ByteCompile": "yes", + "BuildResaveData": "no", + "License": "GPL (>= 2)", + "URL": "https://svn.r-project.org/R-packages/trunk/cluster/", + "NeedsCompilation": "yes", + "Author": "Martin Maechler [aut, cre] (), Peter Rousseeuw [aut] (Fortran original, ), Anja Struyf [aut] (S original), Mia Hubert [aut] (S original, ), Kurt Hornik [trl, ctb] (port to R; maintenance(1999-2000), ), Matthias Studer [ctb], Pierre Roudier [ctb], Juan Gonzalez [ctb], Kamil Kozlowski [ctb], Erich Schubert [ctb] (fastpam options for pam(), ), Keefe Murphy [ctb] (volume.ellipsoid({d >= 3}))", + "Repository": "CRAN" + }, + "codetools": { + "Package": "codetools", + "Version": "0.2-20", + "Source": "Repository", + "Priority": "recommended", + "Author": "Luke Tierney ", + "Description": "Code analysis tools for R.", + "Title": "Code Analysis Tools for R", + "Depends": [ + "R (>= 2.1)" + ], + "Maintainer": "Luke Tierney ", + "URL": "https://gitlab.com/luke-tierney/codetools", + "License": "GPL", + "NeedsCompilation": "no", + "Repository": "CRAN" + }, + "commonmark": { + "Package": "commonmark", + "Version": "2.0.0", + "Source": "Repository", + "Type": "Package", + "Title": "High Performance CommonMark and Github Markdown Rendering in R", + "Authors@R": "c( person(\"Jeroen\", \"Ooms\", ,\"jeroenooms@gmail.com\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"John MacFarlane\", role = \"cph\", comment = \"Author of cmark\"))", + "Description": "The CommonMark specification defines a rationalized version of markdown syntax. This package uses the 'cmark' reference implementation for converting markdown text into various formats including html, latex and groff man. In addition it exposes the markdown parse tree in xml format. Also includes opt-in support for GFM extensions including tables, autolinks, and strikethrough text.", + "License": "BSD_2_clause + file LICENSE", + "URL": "https://docs.ropensci.org/commonmark/ https://ropensci.r-universe.dev/commonmark", + "BugReports": "https://github.com/r-lib/commonmark/issues", + "Suggests": [ + "curl", + "testthat", + "xml2" + ], + "RoxygenNote": "7.3.2", + "Language": "en-US", + "Encoding": "UTF-8", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (ORCID: ), John MacFarlane [cph] (Author of cmark)", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, + "cpp11": { + "Package": "cpp11", + "Version": "0.5.2", + "Source": "Repository", + "Title": "A C++11 Interface for R's C Interface", + "Authors@R": "c( person(\"Davis\", \"Vaughan\", email = \"davis@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-4777-038X\")), person(\"Jim\",\"Hester\", role = \"aut\", comment = c(ORCID = \"0000-0002-2739-7082\")), person(\"Romain\", \"François\", role = \"aut\", comment = c(ORCID = \"0000-0002-2444-4226\")), person(\"Benjamin\", \"Kietzman\", role = \"ctb\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Provides a header only, C++11 interface to R's C interface. Compared to other approaches 'cpp11' strives to be safe against long jumps from the C API as well as C++ exceptions, conform to normal R function semantics and supports interaction with 'ALTREP' vectors.", + "License": "MIT + file LICENSE", + "URL": "https://cpp11.r-lib.org, https://github.com/r-lib/cpp11", + "BugReports": "https://github.com/r-lib/cpp11/issues", + "Depends": [ + "R (>= 4.0.0)" + ], + "Suggests": [ + "bench", + "brio", + "callr", + "cli", + "covr", + "decor", + "desc", + "ggplot2", + "glue", + "knitr", + "lobstr", + "mockery", + "progress", + "rmarkdown", + "scales", + "Rcpp", + "testthat (>= 3.2.0)", + "tibble", + "utils", + "vctrs", + "withr" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/Needs/cpp11/cpp_register": "brio, cli, decor, desc, glue, tibble, vctrs", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Davis Vaughan [aut, cre] (), Jim Hester [aut] (), Romain François [aut] (), Benjamin Kietzman [ctb], Posit Software, PBC [cph, fnd]", + "Maintainer": "Davis Vaughan ", + "Repository": "CRAN" + }, + "crayon": { + "Package": "crayon", + "Version": "1.5.3", + "Source": "Repository", + "Title": "Colored Terminal Output", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Brodie\", \"Gaslam\", , \"brodie.gaslam@yahoo.com\", role = \"ctb\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "The crayon package is now superseded. Please use the 'cli' package for new projects. Colored terminal output on terminals that support 'ANSI' color and highlight codes. It also works in 'Emacs' 'ESS'. 'ANSI' color support is automatically detected. Colors and highlighting can be combined and nested. New styles can also be created easily. This package was inspired by the 'chalk' 'JavaScript' project.", + "License": "MIT + file LICENSE", + "URL": "https://r-lib.github.io/crayon/, https://github.com/r-lib/crayon", + "BugReports": "https://github.com/r-lib/crayon/issues", + "Imports": [ + "grDevices", + "methods", + "utils" + ], + "Suggests": [ + "mockery", + "rstudioapi", + "testthat", + "withr" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.1", + "Collate": "'aaa-rstudio-detect.R' 'aaaa-rematch2.R' 'aab-num-ansi-colors.R' 'aac-num-ansi-colors.R' 'ansi-256.R' 'ansi-palette.R' 'combine.R' 'string.R' 'utils.R' 'crayon-package.R' 'disposable.R' 'enc-utils.R' 'has_ansi.R' 'has_color.R' 'link.R' 'styles.R' 'machinery.R' 'parts.R' 'print.R' 'style-var.R' 'show.R' 'string_operations.R'", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [aut, cre], Brodie Gaslam [ctb], Posit Software, PBC [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "credentials": { + "Package": "credentials", + "Version": "2.0.3", + "Source": "Repository", + "Type": "Package", + "Title": "Tools for Managing SSH and Git Credentials", + "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", + "Description": "Setup and retrieve HTTPS and SSH credentials for use with 'git' and other services. For HTTPS remotes the package interfaces the 'git-credential' utility which 'git' uses to store HTTP usernames and passwords. For SSH remotes we provide convenient functions to find or generate appropriate SSH keys. The package both helps the user to setup a local git installation, and also provides a back-end for git/ssh client libraries to authenticate with existing user credentials.", + "License": "MIT + file LICENSE", + "SystemRequirements": "git (optional)", + "Encoding": "UTF-8", + "Imports": [ + "openssl (>= 1.3)", + "sys (>= 2.1)", + "curl", + "jsonlite", + "askpass" + ], + "Suggests": [ + "testthat", + "knitr", + "rmarkdown" + ], + "RoxygenNote": "7.2.1", + "VignetteBuilder": "knitr", + "Language": "en-US", + "URL": "https://docs.ropensci.org/credentials/ https://r-lib.r-universe.dev/credentials", + "BugReports": "https://github.com/r-lib/credentials/issues", + "NeedsCompilation": "no", + "Author": "Jeroen Ooms [aut, cre] (ORCID: )", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, + "curl": { + "Package": "curl", + "Version": "7.0.0", + "Source": "Repository", + "Type": "Package", + "Title": "A Modern and Flexible Web Client for R", + "Authors@R": "c( person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Hadley\", \"Wickham\", role = \"ctb\"), person(\"Posit Software, PBC\", role = \"cph\"))", + "Description": "Bindings to 'libcurl' for performing fully configurable HTTP/FTP requests where responses can be processed in memory, on disk, or streaming via the callback or connection interfaces. Some knowledge of 'libcurl' is recommended; for a more-user-friendly web client see the 'httr2' package which builds on this package with http specific tools and logic.", + "License": "MIT + file LICENSE", + "SystemRequirements": "libcurl (>= 7.73): libcurl-devel (rpm) or libcurl4-openssl-dev (deb)", + "URL": "https://jeroen.r-universe.dev/curl", + "BugReports": "https://github.com/jeroen/curl/issues", + "Suggests": [ + "spelling", + "testthat (>= 1.0.0)", + "knitr", + "jsonlite", + "later", + "rmarkdown", + "httpuv (>= 1.4.4)", + "webutils" + ], + "VignetteBuilder": "knitr", + "Depends": [ + "R (>= 3.0.0)" + ], + "RoxygenNote": "7.3.2", + "Encoding": "UTF-8", + "Language": "en-US", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (ORCID: ), Hadley Wickham [ctb], Posit Software, PBC [cph]", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, + "desc": { + "Package": "desc", + "Version": "1.4.3", + "Source": "Repository", + "Title": "Manipulate DESCRIPTION Files", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Kirill\", \"Müller\", role = \"aut\"), person(\"Jim\", \"Hester\", , \"james.f.hester@gmail.com\", role = \"aut\"), person(\"Maëlle\", \"Salmon\", role = \"ctb\", comment = c(ORCID = \"0000-0002-2815-0399\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Maintainer": "Gábor Csárdi ", + "Description": "Tools to read, write, create, and manipulate DESCRIPTION files. It is intended for packages that create or manipulate other packages.", + "License": "MIT + file LICENSE", + "URL": "https://desc.r-lib.org/, https://github.com/r-lib/desc", + "BugReports": "https://github.com/r-lib/desc/issues", + "Depends": [ + "R (>= 3.4)" + ], + "Imports": [ + "cli", + "R6", + "utils" + ], + "Suggests": [ + "callr", + "covr", + "gh", + "spelling", + "testthat", + "whoami", + "withr" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.2.3", + "Collate": "'assertions.R' 'authors-at-r.R' 'built.R' 'classes.R' 'collate.R' 'constants.R' 'deps.R' 'desc-package.R' 'description.R' 'encoding.R' 'find-package-root.R' 'latex.R' 'non-oo-api.R' 'package-archives.R' 'read.R' 'remotes.R' 'str.R' 'syntax_checks.R' 'urls.R' 'utils.R' 'validate.R' 'version.R'", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [aut, cre], Kirill Müller [aut], Jim Hester [aut], Maëlle Salmon [ctb] (), Posit Software, PBC [cph, fnd]", + "Repository": "CRAN" + }, + "devtools": { + "Package": "devtools", + "Version": "2.4.6", + "Source": "Repository", + "Title": "Tools to Make Developing R Packages Easier", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Jim\", \"Hester\", role = \"aut\"), person(\"Winston\", \"Chang\", role = \"aut\"), person(\"Jennifer\", \"Bryan\", , \"jenny@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-6983-2759\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Collection of package development tools.", + "License": "MIT + file LICENSE", + "URL": "https://devtools.r-lib.org/, https://github.com/r-lib/devtools", + "BugReports": "https://github.com/r-lib/devtools/issues", + "Depends": [ + "R (>= 4.1)", + "usethis (>= 3.2.1)" + ], + "Imports": [ + "cli (>= 3.6.5)", + "desc (>= 1.4.3)", + "ellipsis (>= 0.3.2)", + "fs (>= 1.6.6)", + "lifecycle (>= 1.0.4)", + "memoise (>= 2.0.1)", + "miniUI (>= 0.1.2)", + "pkgbuild (>= 1.4.8)", + "pkgdown (>= 2.1.3)", + "pkgload (>= 1.4.1)", + "profvis (>= 0.4.0)", + "rcmdcheck (>= 1.4.0)", + "remotes (>= 2.5.0)", + "rlang (>= 1.1.6)", + "roxygen2 (>= 7.3.3)", + "rversions (>= 2.1.2)", + "sessioninfo (>= 1.2.3)", + "stats", + "testthat (>= 3.2.3)", + "tools", + "urlchecker (>= 1.0.1)", + "utils", + "withr (>= 3.0.2)" + ], + "Suggests": [ + "BiocManager (>= 1.30.18)", + "callr (>= 3.7.1)", + "covr (>= 3.5.1)", + "curl (>= 4.3.2)", + "digest (>= 0.6.29)", + "DT (>= 0.23)", + "foghorn (>= 1.4.2)", + "gh (>= 1.3.0)", + "gmailr (>= 1.0.1)", + "httr (>= 1.4.3)", + "knitr (>= 1.39)", + "lintr (>= 3.0.0)", + "MASS", + "mockery (>= 0.4.3)", + "pingr (>= 2.0.1)", + "rhub (>= 1.1.1)", + "rmarkdown (>= 2.14)", + "rstudioapi (>= 0.13)", + "spelling (>= 2.2)" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.3.3", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut], Jim Hester [aut], Winston Chang [aut], Jennifer Bryan [aut, cre] (ORCID: ), Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Jennifer Bryan ", + "Repository": "CRAN" + }, + "diffobj": { + "Package": "diffobj", + "Version": "0.3.6", + "Source": "Repository", + "Type": "Package", + "Title": "Diffs for R Objects", + "Description": "Generate a colorized diff of two R objects for an intuitive visualization of their differences.", + "Authors@R": "c( person( \"Brodie\", \"Gaslam\", email=\"brodie.gaslam@yahoo.com\", role=c(\"aut\", \"cre\")), person( \"Michael B.\", \"Allen\", email=\"ioplex@gmail.com\", role=c(\"ctb\", \"cph\"), comment=\"Original C implementation of Myers Diff Algorithm\"))", + "Depends": [ + "R (>= 3.1.0)" + ], + "License": "GPL-2 | GPL-3", + "URL": "https://github.com/brodieG/diffobj", + "BugReports": "https://github.com/brodieG/diffobj/issues", + "RoxygenNote": "7.2.3", + "VignetteBuilder": "knitr", + "Encoding": "UTF-8", + "Suggests": [ + "knitr", + "rmarkdown" + ], + "Collate": "'capt.R' 'options.R' 'pager.R' 'check.R' 'finalizer.R' 'misc.R' 'html.R' 'styles.R' 's4.R' 'core.R' 'diff.R' 'get.R' 'guides.R' 'hunks.R' 'layout.R' 'myerssimple.R' 'rdiff.R' 'rds.R' 'set.R' 'subset.R' 'summmary.R' 'system.R' 'text.R' 'tochar.R' 'trim.R' 'word.R'", + "Imports": [ + "crayon (>= 1.3.2)", + "tools", + "methods", + "utils", + "stats" + ], + "NeedsCompilation": "yes", + "Author": "Brodie Gaslam [aut, cre], Michael B. Allen [ctb, cph] (Original C implementation of Myers Diff Algorithm)", + "Maintainer": "Brodie Gaslam ", + "Repository": "CRAN" + }, + "digest": { + "Package": "digest", + "Version": "0.6.37", + "Source": "Repository", + "Authors@R": "c(person(\"Dirk\", \"Eddelbuettel\", role = c(\"aut\", \"cre\"), email = \"edd@debian.org\", comment = c(ORCID = \"0000-0001-6419-907X\")), person(\"Antoine\", \"Lucas\", role=\"ctb\"), person(\"Jarek\", \"Tuszynski\", role=\"ctb\"), person(\"Henrik\", \"Bengtsson\", role=\"ctb\", comment = c(ORCID = \"0000-0002-7579-5165\")), person(\"Simon\", \"Urbanek\", role=\"ctb\", comment = c(ORCID = \"0000-0003-2297-1732\")), person(\"Mario\", \"Frasca\", role=\"ctb\"), person(\"Bryan\", \"Lewis\", role=\"ctb\"), person(\"Murray\", \"Stokely\", role=\"ctb\"), person(\"Hannes\", \"Muehleisen\", role=\"ctb\"), person(\"Duncan\", \"Murdoch\", role=\"ctb\"), person(\"Jim\", \"Hester\", role=\"ctb\"), person(\"Wush\", \"Wu\", role=\"ctb\", comment = c(ORCID = \"0000-0001-5180-0567\")), person(\"Qiang\", \"Kou\", role=\"ctb\", comment = c(ORCID = \"0000-0001-6786-5453\")), person(\"Thierry\", \"Onkelinx\", role=\"ctb\", comment = c(ORCID = \"0000-0001-8804-4216\")), person(\"Michel\", \"Lang\", role=\"ctb\", comment = c(ORCID = \"0000-0001-9754-0393\")), person(\"Viliam\", \"Simko\", role=\"ctb\"), person(\"Kurt\", \"Hornik\", role=\"ctb\", comment = c(ORCID = \"0000-0003-4198-9911\")), person(\"Radford\", \"Neal\", role=\"ctb\", comment = c(ORCID = \"0000-0002-2473-3407\")), person(\"Kendon\", \"Bell\", role=\"ctb\", comment = c(ORCID = \"0000-0002-9093-8312\")), person(\"Matthew\", \"de Queljoe\", role=\"ctb\"), person(\"Dmitry\", \"Selivanov\", role=\"ctb\"), person(\"Ion\", \"Suruceanu\", role=\"ctb\"), person(\"Bill\", \"Denney\", role=\"ctb\"), person(\"Dirk\", \"Schumacher\", role=\"ctb\"), person(\"András\", \"Svraka\", role=\"ctb\"), person(\"Sergey\", \"Fedorov\", role=\"ctb\"), person(\"Will\", \"Landau\", role=\"ctb\", comment = c(ORCID = \"0000-0003-1878-3253\")), person(\"Floris\", \"Vanderhaeghe\", role=\"ctb\", comment = c(ORCID = \"0000-0002-6378-6229\")), person(\"Kevin\", \"Tappe\", role=\"ctb\"), person(\"Harris\", \"McGehee\", role=\"ctb\"), person(\"Tim\", \"Mastny\", role=\"ctb\"), person(\"Aaron\", \"Peikert\", role=\"ctb\", comment = c(ORCID = \"0000-0001-7813-818X\")), person(\"Mark\", \"van der Loo\", role=\"ctb\", comment = c(ORCID = \"0000-0002-9807-4686\")), person(\"Chris\", \"Muir\", role=\"ctb\", comment = c(ORCID = \"0000-0003-2555-3878\")), person(\"Moritz\", \"Beller\", role=\"ctb\", comment = c(ORCID = \"0000-0003-4852-0526\")), person(\"Sebastian\", \"Campbell\", role=\"ctb\"), person(\"Winston\", \"Chang\", role=\"ctb\", comment = c(ORCID = \"0000-0002-1576-2126\")), person(\"Dean\", \"Attali\", role=\"ctb\", comment = c(ORCID = \"0000-0002-5645-3493\")), person(\"Michael\", \"Chirico\", role=\"ctb\", comment = c(ORCID = \"0000-0003-0787-087X\")), person(\"Kevin\", \"Ushey\", role=\"ctb\"))", + "Date": "2024-08-19", + "Title": "Create Compact Hash Digests of R Objects", + "Description": "Implementation of a function 'digest()' for the creation of hash digests of arbitrary R objects (using the 'md5', 'sha-1', 'sha-256', 'crc32', 'xxhash', 'murmurhash', 'spookyhash', 'blake3', 'crc32c', 'xxh3_64', and 'xxh3_128' algorithms) permitting easy comparison of R language objects, as well as functions such as'hmac()' to create hash-based message authentication code. Please note that this package is not meant to be deployed for cryptographic purposes for which more comprehensive (and widely tested) libraries such as 'OpenSSL' should be used.", + "URL": "https://github.com/eddelbuettel/digest, https://dirk.eddelbuettel.com/code/digest.html", + "BugReports": "https://github.com/eddelbuettel/digest/issues", + "Depends": [ + "R (>= 3.3.0)" + ], + "Imports": [ + "utils" + ], + "License": "GPL (>= 2)", + "Suggests": [ + "tinytest", + "simplermarkdown" + ], + "VignetteBuilder": "simplermarkdown", + "Encoding": "UTF-8", + "NeedsCompilation": "yes", + "Author": "Dirk Eddelbuettel [aut, cre] (), Antoine Lucas [ctb], Jarek Tuszynski [ctb], Henrik Bengtsson [ctb] (), Simon Urbanek [ctb] (), Mario Frasca [ctb], Bryan Lewis [ctb], Murray Stokely [ctb], Hannes Muehleisen [ctb], Duncan Murdoch [ctb], Jim Hester [ctb], Wush Wu [ctb] (), Qiang Kou [ctb] (), Thierry Onkelinx [ctb] (), Michel Lang [ctb] (), Viliam Simko [ctb], Kurt Hornik [ctb] (), Radford Neal [ctb] (), Kendon Bell [ctb] (), Matthew de Queljoe [ctb], Dmitry Selivanov [ctb], Ion Suruceanu [ctb], Bill Denney [ctb], Dirk Schumacher [ctb], András Svraka [ctb], Sergey Fedorov [ctb], Will Landau [ctb] (), Floris Vanderhaeghe [ctb] (), Kevin Tappe [ctb], Harris McGehee [ctb], Tim Mastny [ctb], Aaron Peikert [ctb] (), Mark van der Loo [ctb] (), Chris Muir [ctb] (), Moritz Beller [ctb] (), Sebastian Campbell [ctb], Winston Chang [ctb] (), Dean Attali [ctb] (), Michael Chirico [ctb] (), Kevin Ushey [ctb]", + "Maintainer": "Dirk Eddelbuettel ", + "Repository": "CRAN" + }, + "downlit": { + "Package": "downlit", + "Version": "0.4.4", + "Source": "Repository", + "Title": "Syntax Highlighting and Automatic Linking", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Syntax highlighting of R code, specifically designed for the needs of 'RMarkdown' packages like 'pkgdown', 'hugodown', and 'bookdown'. It includes linking of function calls to their documentation on the web, and automatic translation of ANSI escapes in output to the equivalent HTML.", + "License": "MIT + file LICENSE", + "URL": "https://downlit.r-lib.org/, https://github.com/r-lib/downlit", + "BugReports": "https://github.com/r-lib/downlit/issues", + "Depends": [ + "R (>= 4.0.0)" + ], + "Imports": [ + "brio", + "desc", + "digest", + "evaluate", + "fansi", + "memoise", + "rlang", + "vctrs", + "withr", + "yaml" + ], + "Suggests": [ + "covr", + "htmltools", + "jsonlite", + "MASS", + "MassSpecWavelet", + "pkgload", + "rmarkdown", + "testthat (>= 3.0.0)", + "xml2" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.1", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut, cre], Posit Software, PBC [cph, fnd]", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "dplyr": { + "Package": "dplyr", + "Version": "1.1.4", + "Source": "Repository", + "Type": "Package", + "Title": "A Grammar of Data Manipulation", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Romain\", \"François\", role = \"aut\", comment = c(ORCID = \"0000-0002-2444-4226\")), person(\"Lionel\", \"Henry\", role = \"aut\"), person(\"Kirill\", \"Müller\", role = \"aut\", comment = c(ORCID = \"0000-0002-1416-3412\")), person(\"Davis\", \"Vaughan\", , \"davis@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0003-4777-038X\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "A fast, consistent tool for working with data frame like objects, both in memory and out of memory.", + "License": "MIT + file LICENSE", + "URL": "https://dplyr.tidyverse.org, https://github.com/tidyverse/dplyr", + "BugReports": "https://github.com/tidyverse/dplyr/issues", + "Depends": [ + "R (>= 3.5.0)" + ], + "Imports": [ + "cli (>= 3.4.0)", + "generics", + "glue (>= 1.3.2)", + "lifecycle (>= 1.0.3)", + "magrittr (>= 1.5)", + "methods", + "pillar (>= 1.9.0)", + "R6", + "rlang (>= 1.1.0)", + "tibble (>= 3.2.0)", + "tidyselect (>= 1.2.0)", + "utils", + "vctrs (>= 0.6.4)" + ], + "Suggests": [ + "bench", + "broom", + "callr", + "covr", + "DBI", + "dbplyr (>= 2.2.1)", + "ggplot2", + "knitr", + "Lahman", + "lobstr", + "microbenchmark", + "nycflights13", + "purrr", + "rmarkdown", + "RMySQL", + "RPostgreSQL", + "RSQLite", + "stringi (>= 1.7.6)", + "testthat (>= 3.1.5)", + "tidyr (>= 1.3.0)", + "withr" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse, shiny, pkgdown, tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "LazyData": "true", + "RoxygenNote": "7.2.3", + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [aut, cre] (), Romain François [aut] (), Lionel Henry [aut], Kirill Müller [aut] (), Davis Vaughan [aut] (), Posit Software, PBC [cph, fnd]", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "ellipsis": { + "Package": "ellipsis", + "Version": "0.3.2", + "Source": "Repository", + "Title": "Tools for Working with ...", + "Description": "The ellipsis is a powerful tool for extending functions. Unfortunately this power comes at a cost: misspelled arguments will be silently ignored. The ellipsis package provides a collection of functions to catch problems and alert the user.", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@rstudio.com\", role = c(\"aut\", \"cre\")), person(\"RStudio\", role = \"cph\") )", + "License": "MIT + file LICENSE", + "Encoding": "UTF-8", + "RoxygenNote": "7.1.1", + "URL": "https://ellipsis.r-lib.org, https://github.com/r-lib/ellipsis", + "BugReports": "https://github.com/r-lib/ellipsis/issues", + "Depends": [ + "R (>= 3.2)" + ], + "Imports": [ + "rlang (>= 0.3.0)" + ], + "Suggests": [ + "covr", + "testthat" + ], + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [aut, cre], RStudio [cph]", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "evaluate": { + "Package": "evaluate", + "Version": "1.0.5", + "Source": "Repository", + "Type": "Package", + "Title": "Parsing and Evaluation Tools that Provide More Details than the Default", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\")), person(\"Yihui\", \"Xie\", role = \"aut\", comment = c(ORCID = \"0000-0003-0645-5666\")), person(\"Michael\", \"Lawrence\", role = \"ctb\"), person(\"Thomas\", \"Kluyver\", role = \"ctb\"), person(\"Jeroen\", \"Ooms\", role = \"ctb\"), person(\"Barret\", \"Schloerke\", role = \"ctb\"), person(\"Adam\", \"Ryczkowski\", role = \"ctb\"), person(\"Hiroaki\", \"Yutani\", role = \"ctb\"), person(\"Michel\", \"Lang\", role = \"ctb\"), person(\"Karolis\", \"Koncevičius\", role = \"ctb\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Parsing and evaluation tools that make it easy to recreate the command line behaviour of R.", + "License": "MIT + file LICENSE", + "URL": "https://evaluate.r-lib.org/, https://github.com/r-lib/evaluate", + "BugReports": "https://github.com/r-lib/evaluate/issues", + "Depends": [ + "R (>= 3.6.0)" + ], + "Suggests": [ + "callr", + "covr", + "ggplot2 (>= 3.3.6)", + "lattice", + "methods", + "pkgload", + "ragg (>= 1.4.0)", + "rlang (>= 1.1.5)", + "knitr", + "testthat (>= 3.0.0)", + "withr" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut, cre], Yihui Xie [aut] (ORCID: ), Michael Lawrence [ctb], Thomas Kluyver [ctb], Jeroen Ooms [ctb], Barret Schloerke [ctb], Adam Ryczkowski [ctb], Hiroaki Yutani [ctb], Michel Lang [ctb], Karolis Koncevičius [ctb], Posit Software, PBC [cph, fnd]", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "fansi": { + "Package": "fansi", + "Version": "1.0.6", + "Source": "Repository", + "Title": "ANSI Control Sequence Aware String Functions", + "Description": "Counterparts to R string manipulation functions that account for the effects of ANSI text formatting control sequences.", + "Authors@R": "c( person(\"Brodie\", \"Gaslam\", email=\"brodie.gaslam@yahoo.com\", role=c(\"aut\", \"cre\")), person(\"Elliott\", \"Sales De Andrade\", role=\"ctb\"), person(family=\"R Core Team\", email=\"R-core@r-project.org\", role=\"cph\", comment=\"UTF8 byte length calcs from src/util.c\" ))", + "Depends": [ + "R (>= 3.1.0)" + ], + "License": "GPL-2 | GPL-3", + "URL": "https://github.com/brodieG/fansi", + "BugReports": "https://github.com/brodieG/fansi/issues", + "VignetteBuilder": "knitr", + "Suggests": [ + "unitizer", + "knitr", + "rmarkdown" + ], + "Imports": [ + "grDevices", + "utils" + ], + "RoxygenNote": "7.2.3", + "Encoding": "UTF-8", + "Collate": "'constants.R' 'fansi-package.R' 'internal.R' 'load.R' 'misc.R' 'nchar.R' 'strwrap.R' 'strtrim.R' 'strsplit.R' 'substr2.R' 'trimws.R' 'tohtml.R' 'unhandled.R' 'normalize.R' 'sgr.R'", + "NeedsCompilation": "yes", + "Author": "Brodie Gaslam [aut, cre], Elliott Sales De Andrade [ctb], R Core Team [cph] (UTF8 byte length calcs from src/util.c)", + "Maintainer": "Brodie Gaslam ", + "Repository": "CRAN" + }, + "fastmap": { + "Package": "fastmap", + "Version": "1.2.0", + "Source": "Repository", + "Title": "Fast Data Structures", + "Authors@R": "c( person(\"Winston\", \"Chang\", email = \"winston@posit.co\", role = c(\"aut\", \"cre\")), person(given = \"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(given = \"Tessil\", role = \"cph\", comment = \"hopscotch_map library\") )", + "Description": "Fast implementation of data structures, including a key-value store, stack, and queue. Environments are commonly used as key-value stores in R, but every time a new key is used, it is added to R's global symbol table, causing a small amount of memory leakage. This can be problematic in cases where many different keys are used. Fastmap avoids this memory leak issue by implementing the map using data structures in C++.", + "License": "MIT + file LICENSE", + "Encoding": "UTF-8", + "RoxygenNote": "7.2.3", + "Suggests": [ + "testthat (>= 2.1.1)" + ], + "URL": "https://r-lib.github.io/fastmap/, https://github.com/r-lib/fastmap", + "BugReports": "https://github.com/r-lib/fastmap/issues", + "NeedsCompilation": "yes", + "Author": "Winston Chang [aut, cre], Posit Software, PBC [cph, fnd], Tessil [cph] (hopscotch_map library)", + "Maintainer": "Winston Chang ", + "Repository": "CRAN" + }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.3", + "Source": "Repository", + "Type": "Package", + "Title": "Easily Work with 'Font Awesome' Icons", + "Description": "Easily and flexibly insert 'Font Awesome' icons into 'R Markdown' documents and 'Shiny' apps. These icons can be inserted into HTML content through inline 'SVG' tags or 'i' tags. There is also a utility function for exporting 'Font Awesome' icons as 'PNG' images for those situations where raster graphics are needed.", + "Authors@R": "c( person(\"Richard\", \"Iannone\", , \"rich@posit.co\", c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-3925-190X\")), person(\"Christophe\", \"Dervieux\", , \"cderv@posit.co\", role = \"ctb\", comment = c(ORCID = \"0000-0003-4474-2498\")), person(\"Winston\", \"Chang\", , \"winston@posit.co\", role = \"ctb\"), person(\"Dave\", \"Gandy\", role = c(\"ctb\", \"cph\"), comment = \"Font-Awesome font\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "License": "MIT + file LICENSE", + "URL": "https://github.com/rstudio/fontawesome, https://rstudio.github.io/fontawesome/", + "BugReports": "https://github.com/rstudio/fontawesome/issues", + "Encoding": "UTF-8", + "ByteCompile": "true", + "RoxygenNote": "7.3.2", + "Depends": [ + "R (>= 3.3.0)" + ], + "Imports": [ + "rlang (>= 1.0.6)", + "htmltools (>= 0.5.1.1)" + ], + "Suggests": [ + "covr", + "dplyr (>= 1.0.8)", + "gt (>= 0.9.0)", + "knitr (>= 1.31)", + "testthat (>= 3.0.0)", + "rsvg" + ], + "Config/testthat/edition": "3", + "NeedsCompilation": "no", + "Author": "Richard Iannone [aut, cre] (), Christophe Dervieux [ctb] (), Winston Chang [ctb], Dave Gandy [ctb, cph] (Font-Awesome font), Posit Software, PBC [cph, fnd]", + "Maintainer": "Richard Iannone ", + "Repository": "CRAN" + }, + "foreign": { + "Package": "foreign", + "Version": "0.8-87", + "Source": "Repository", + "Priority": "recommended", + "Date": "2024-06-25", + "Title": "Read Data Stored by 'Minitab', 'S', 'SAS', 'SPSS', 'Stata', 'Systat', 'Weka', 'dBase', ...", + "Depends": [ + "R (>= 4.0.0)" + ], + "Imports": [ + "methods", + "utils", + "stats" + ], + "Authors@R": "c( person(\"R Core Team\", email = \"R-core@R-project.org\", role = c(\"aut\", \"cph\", \"cre\")), person(\"Roger\", \"Bivand\", role = c(\"ctb\", \"cph\")), person(c(\"Vincent\", \"J.\"), \"Carey\", role = c(\"ctb\", \"cph\")), person(\"Saikat\", \"DebRoy\", role = c(\"ctb\", \"cph\")), person(\"Stephen\", \"Eglen\", role = c(\"ctb\", \"cph\")), person(\"Rajarshi\", \"Guha\", role = c(\"ctb\", \"cph\")), person(\"Swetlana\", \"Herbrandt\", role = \"ctb\"), person(\"Nicholas\", \"Lewin-Koh\", role = c(\"ctb\", \"cph\")), person(\"Mark\", \"Myatt\", role = c(\"ctb\", \"cph\")), person(\"Michael\", \"Nelson\", role = \"ctb\"), person(\"Ben\", \"Pfaff\", role = \"ctb\"), person(\"Brian\", \"Quistorff\", role = \"ctb\"), person(\"Frank\", \"Warmerdam\", role = c(\"ctb\", \"cph\")), person(\"Stephen\", \"Weigand\", role = c(\"ctb\", \"cph\")), person(\"Free Software Foundation, Inc.\", role = \"cph\"))", + "Contact": "see 'MailingList'", + "Copyright": "see file COPYRIGHTS", + "Description": "Reading and writing data stored by some versions of 'Epi Info', 'Minitab', 'S', 'SAS', 'SPSS', 'Stata', 'Systat', 'Weka', and for reading and writing some 'dBase' files.", + "ByteCompile": "yes", + "Biarch": "yes", + "License": "GPL (>= 2)", + "BugReports": "https://bugs.r-project.org", + "MailingList": "R-help@r-project.org", + "URL": "https://svn.r-project.org/R-packages/trunk/foreign/", + "NeedsCompilation": "yes", + "Author": "R Core Team [aut, cph, cre], Roger Bivand [ctb, cph], Vincent J. Carey [ctb, cph], Saikat DebRoy [ctb, cph], Stephen Eglen [ctb, cph], Rajarshi Guha [ctb, cph], Swetlana Herbrandt [ctb], Nicholas Lewin-Koh [ctb, cph], Mark Myatt [ctb, cph], Michael Nelson [ctb], Ben Pfaff [ctb], Brian Quistorff [ctb], Frank Warmerdam [ctb, cph], Stephen Weigand [ctb, cph], Free Software Foundation, Inc. [cph]", + "Maintainer": "R Core Team ", + "Repository": "CRAN" + }, + "fs": { + "Package": "fs", + "Version": "1.6.6", + "Source": "Repository", + "Title": "Cross-Platform File System Operations Based on 'libuv'", + "Authors@R": "c( person(\"Jim\", \"Hester\", role = \"aut\"), person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\"), person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"libuv project contributors\", role = \"cph\", comment = \"libuv library\"), person(\"Joyent, Inc. and other Node contributors\", role = \"cph\", comment = \"libuv library\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "A cross-platform interface to file system operations, built on top of the 'libuv' C library.", + "License": "MIT + file LICENSE", + "URL": "https://fs.r-lib.org, https://github.com/r-lib/fs", + "BugReports": "https://github.com/r-lib/fs/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Imports": [ + "methods" + ], + "Suggests": [ + "covr", + "crayon", + "knitr", + "pillar (>= 1.0.0)", + "rmarkdown", + "spelling", + "testthat (>= 3.0.0)", + "tibble (>= 1.1.0)", + "vctrs (>= 0.3.0)", + "withr" + ], + "VignetteBuilder": "knitr", + "ByteCompile": "true", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Copyright": "file COPYRIGHTS", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.2.3", + "SystemRequirements": "GNU make", + "NeedsCompilation": "yes", + "Author": "Jim Hester [aut], Hadley Wickham [aut], Gábor Csárdi [aut, cre], libuv project contributors [cph] (libuv library), Joyent, Inc. and other Node contributors [cph] (libuv library), Posit Software, PBC [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "generics": { + "Package": "generics", + "Version": "0.1.4", + "Source": "Repository", + "Title": "Common S3 Generics not Provided by Base R Methods Related to Model Fitting", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Max\", \"Kuhn\", , \"max@posit.co\", role = \"aut\"), person(\"Davis\", \"Vaughan\", , \"davis@posit.co\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"https://ror.org/03wc8by49\")) )", + "Description": "In order to reduce potential package dependencies and conflicts, generics provides a number of commonly used S3 generics.", + "License": "MIT + file LICENSE", + "URL": "https://generics.r-lib.org, https://github.com/r-lib/generics", + "BugReports": "https://github.com/r-lib/generics/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Imports": [ + "methods" + ], + "Suggests": [ + "covr", + "pkgload", + "testthat (>= 3.0.0)", + "tibble", + "withr" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut, cre] (ORCID: ), Max Kuhn [aut], Davis Vaughan [aut], Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "gert": { + "Package": "gert", + "Version": "2.1.5", + "Source": "Repository", + "Type": "Package", + "Title": "Simple Git Client for R", + "Authors@R": "c( person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Jennifer\", \"Bryan\", role = \"ctb\", email = \"jenny@posit.co\", comment = c(ORCID = \"0000-0002-6983-2759\")))", + "Description": "Simple git client for R based on 'libgit2' with support for SSH and HTTPS remotes. All functions in 'gert' use basic R data types (such as vectors and data-frames) for their arguments and return values. User credentials are shared with command line 'git' through the git-credential store and ssh keys stored on disk or ssh-agent.", + "License": "MIT + file LICENSE", + "URL": "https://docs.ropensci.org/gert/, https://ropensci.r-universe.dev/gert", + "BugReports": "https://github.com/r-lib/gert/issues", + "Imports": [ + "askpass", + "credentials (>= 1.2.1)", + "openssl (>= 2.0.3)", + "rstudioapi (>= 0.11)", + "sys", + "zip (>= 2.1.0)" + ], + "Suggests": [ + "spelling", + "knitr", + "rmarkdown", + "testthat" + ], + "VignetteBuilder": "knitr", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2.9000", + "SystemRequirements": "libgit2 (>= 1.0): libgit2-devel (rpm) or libgit2-dev (deb)", + "Language": "en-US", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (), Jennifer Bryan [ctb] ()", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, + "gh": { + "Package": "gh", + "Version": "1.5.0", + "Source": "Repository", + "Title": "'GitHub' 'API'", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"cre\", \"ctb\")), person(\"Jennifer\", \"Bryan\", role = \"aut\"), person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Minimal client to access the 'GitHub' 'API'.", + "License": "MIT + file LICENSE", + "URL": "https://gh.r-lib.org/, https://github.com/r-lib/gh#readme", + "BugReports": "https://github.com/r-lib/gh/issues", + "Depends": [ + "R (>= 4.1)" + ], + "Imports": [ + "cli (>= 3.0.1)", + "gitcreds", + "glue", + "httr2 (>= 1.0.6)", + "ini", + "jsonlite", + "lifecycle", + "rlang (>= 1.0.0)" + ], + "Suggests": [ + "connectcreds", + "covr", + "knitr", + "rmarkdown", + "rprojroot", + "spelling", + "testthat (>= 3.0.0)", + "withr" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/usethis/last-upkeep": "2025-04-29", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.3.2.9000", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [cre, ctb], Jennifer Bryan [aut], Hadley Wickham [aut], Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "gitcreds": { + "Package": "gitcreds", + "Version": "0.1.2", + "Source": "Repository", + "Title": "Query 'git' Credentials from 'R'", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"RStudio\", role = c(\"cph\", \"fnd\")) )", + "Description": "Query, set, delete credentials from the 'git' credential store. Manage 'GitHub' tokens and other 'git' credentials. This package is to be used by other packages that need to authenticate to 'GitHub' and/or other 'git' repositories.", + "License": "MIT + file LICENSE", + "URL": "https://gitcreds.r-lib.org/, https://github.com/r-lib/gitcreds", + "BugReports": "https://github.com/r-lib/gitcreds/issues", + "Depends": [ + "R (>= 3.4)" + ], + "Suggests": [ + "codetools", + "covr", + "knitr", + "mockery", + "oskeyring", + "rmarkdown", + "testthat (>= 3.0.0)", + "withr" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Encoding": "UTF-8", + "RoxygenNote": "7.2.1.9000", + "SystemRequirements": "git", + "Config/testthat/edition": "3", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [aut, cre], RStudio [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "glue": { + "Package": "glue", + "Version": "1.8.0", + "Source": "Repository", + "Title": "Interpreted String Literals", + "Authors@R": "c( person(\"Jim\", \"Hester\", role = \"aut\", comment = c(ORCID = \"0000-0002-2739-7082\")), person(\"Jennifer\", \"Bryan\", , \"jenny@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-6983-2759\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "An implementation of interpreted string literals, inspired by Python's Literal String Interpolation and Docstrings and Julia's Triple-Quoted String Literals .", + "License": "MIT + file LICENSE", + "URL": "https://glue.tidyverse.org/, https://github.com/tidyverse/glue", + "BugReports": "https://github.com/tidyverse/glue/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Imports": [ + "methods" + ], + "Suggests": [ + "crayon", + "DBI (>= 1.2.0)", + "dplyr", + "knitr", + "magrittr", + "rlang", + "rmarkdown", + "RSQLite", + "testthat (>= 3.2.0)", + "vctrs (>= 0.3.0)", + "waldo (>= 0.5.3)", + "withr" + ], + "VignetteBuilder": "knitr", + "ByteCompile": "true", + "Config/Needs/website": "bench, forcats, ggbeeswarm, ggplot2, R.utils, rprintf, tidyr, tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Jim Hester [aut] (), Jennifer Bryan [aut, cre] (), Posit Software, PBC [cph, fnd]", + "Maintainer": "Jennifer Bryan ", + "Repository": "CRAN" + }, + "highr": { + "Package": "highr", + "Version": "0.11", + "Source": "Repository", + "Type": "Package", + "Title": "Syntax Highlighting for R Source Code", + "Authors@R": "c( person(\"Yihui\", \"Xie\", role = c(\"aut\", \"cre\"), email = \"xie@yihui.name\", comment = c(ORCID = \"0000-0003-0645-5666\")), person(\"Yixuan\", \"Qiu\", role = \"aut\"), person(\"Christopher\", \"Gandrud\", role = \"ctb\"), person(\"Qiang\", \"Li\", role = \"ctb\") )", + "Description": "Provides syntax highlighting for R source code. Currently it supports LaTeX and HTML output. Source code of other languages is supported via Andre Simon's highlight package ().", + "Depends": [ + "R (>= 3.3.0)" + ], + "Imports": [ + "xfun (>= 0.18)" + ], + "Suggests": [ + "knitr", + "markdown", + "testit" + ], + "License": "GPL", + "URL": "https://github.com/yihui/highr", + "BugReports": "https://github.com/yihui/highr/issues", + "VignetteBuilder": "knitr", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.1", + "NeedsCompilation": "no", + "Author": "Yihui Xie [aut, cre] (), Yixuan Qiu [aut], Christopher Gandrud [ctb], Qiang Li [ctb]", + "Maintainer": "Yihui Xie ", + "Repository": "CRAN" + }, + "hms": { + "Package": "hms", + "Version": "1.1.4", + "Source": "Repository", + "Title": "Pretty Time of Day", + "Date": "2025-10-11", + "Authors@R": "c( person(\"Kirill\", \"Müller\", , \"kirill@cynkra.com\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-1416-3412\")), person(\"R Consortium\", role = \"fnd\"), person(\"Posit Software, PBC\", role = \"fnd\", comment = c(ROR = \"03wc8by49\")) )", + "Description": "Implements an S3 class for storing and formatting time-of-day values, based on the 'difftime' class.", + "License": "MIT + file LICENSE", + "URL": "https://hms.tidyverse.org/, https://github.com/tidyverse/hms", + "BugReports": "https://github.com/tidyverse/hms/issues", + "Imports": [ + "cli", + "lifecycle", + "methods", + "pkgconfig", + "rlang (>= 1.0.2)", + "vctrs (>= 0.3.8)" + ], + "Suggests": [ + "crayon", + "lubridate", + "pillar (>= 1.1.0)", + "testthat (>= 3.0.0)" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.3.9000", + "NeedsCompilation": "no", + "Author": "Kirill Müller [aut, cre] (ORCID: ), R Consortium [fnd], Posit Software, PBC [fnd] (ROR: )", + "Maintainer": "Kirill Müller ", + "Repository": "CRAN" + }, + "htmltools": { + "Package": "htmltools", + "Version": "0.5.8.1", + "Source": "Repository", + "Type": "Package", + "Title": "Tools for HTML", + "Authors@R": "c( person(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"), person(\"Carson\", \"Sievert\", , \"carson@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-4958-2844\")), person(\"Barret\", \"Schloerke\", , \"barret@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0001-9986-114X\")), person(\"Winston\", \"Chang\", , \"winston@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0002-1576-2126\")), person(\"Yihui\", \"Xie\", , \"yihui@posit.co\", role = \"aut\"), person(\"Jeff\", \"Allen\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Tools for HTML generation and output.", + "License": "GPL (>= 2)", + "URL": "https://github.com/rstudio/htmltools, https://rstudio.github.io/htmltools/", + "BugReports": "https://github.com/rstudio/htmltools/issues", + "Depends": [ + "R (>= 2.14.1)" + ], + "Imports": [ + "base64enc", + "digest", + "fastmap (>= 1.1.0)", + "grDevices", + "rlang (>= 1.0.0)", + "utils" + ], + "Suggests": [ + "Cairo", + "markdown", + "ragg", + "shiny", + "testthat", + "withr" + ], + "Enhances": [ + "knitr" + ], + "Config/Needs/check": "knitr", + "Config/Needs/website": "rstudio/quillt, bench", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.1", + "Collate": "'colors.R' 'fill.R' 'html_dependency.R' 'html_escape.R' 'html_print.R' 'htmltools-package.R' 'images.R' 'known_tags.R' 'selector.R' 'staticimports.R' 'tag_query.R' 'utils.R' 'tags.R' 'template.R'", + "NeedsCompilation": "yes", + "Author": "Joe Cheng [aut], Carson Sievert [aut, cre] (), Barret Schloerke [aut] (), Winston Chang [aut] (), Yihui Xie [aut], Jeff Allen [aut], Posit Software, PBC [cph, fnd]", + "Maintainer": "Carson Sievert ", + "Repository": "CRAN" + }, + "htmlwidgets": { + "Package": "htmlwidgets", + "Version": "1.6.4", + "Source": "Repository", + "Type": "Package", + "Title": "HTML Widgets for R", + "Authors@R": "c( person(\"Ramnath\", \"Vaidyanathan\", role = c(\"aut\", \"cph\")), person(\"Yihui\", \"Xie\", role = \"aut\"), person(\"JJ\", \"Allaire\", role = \"aut\"), person(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"), person(\"Carson\", \"Sievert\", , \"carson@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-4958-2844\")), person(\"Kenton\", \"Russell\", role = c(\"aut\", \"cph\")), person(\"Ellis\", \"Hughes\", role = \"ctb\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "A framework for creating HTML widgets that render in various contexts including the R console, 'R Markdown' documents, and 'Shiny' web applications.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/ramnathv/htmlwidgets", + "BugReports": "https://github.com/ramnathv/htmlwidgets/issues", + "Imports": [ + "grDevices", + "htmltools (>= 0.5.7)", + "jsonlite (>= 0.9.16)", + "knitr (>= 1.8)", + "rmarkdown", + "yaml" + ], + "Suggests": [ + "testthat" + ], + "Enhances": [ + "shiny (>= 1.1)" + ], + "VignetteBuilder": "knitr", + "Encoding": "UTF-8", + "RoxygenNote": "7.2.3", + "NeedsCompilation": "no", + "Author": "Ramnath Vaidyanathan [aut, cph], Yihui Xie [aut], JJ Allaire [aut], Joe Cheng [aut], Carson Sievert [aut, cre] (), Kenton Russell [aut, cph], Ellis Hughes [ctb], Posit Software, PBC [cph, fnd]", + "Maintainer": "Carson Sievert ", + "Repository": "CRAN" + }, + "httpuv": { + "Package": "httpuv", + "Version": "1.6.16", + "Source": "Repository", + "Type": "Package", + "Title": "HTTP and WebSocket Server Library", + "Authors@R": "c( person(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"), person(\"Winston\", \"Chang\", , \"winston@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit, PBC\", \"fnd\", role = \"cph\"), person(\"Hector\", \"Corrada Bravo\", role = \"ctb\"), person(\"Jeroen\", \"Ooms\", role = \"ctb\"), person(\"Andrzej\", \"Krzemienski\", role = \"cph\", comment = \"optional.hpp\"), person(\"libuv project contributors\", role = \"cph\", comment = \"libuv library, see src/libuv/AUTHORS file\"), person(\"Joyent, Inc. and other Node contributors\", role = \"cph\", comment = \"libuv library, see src/libuv/AUTHORS file; and http-parser library, see src/http-parser/AUTHORS file\"), person(\"Niels\", \"Provos\", role = \"cph\", comment = \"libuv subcomponent: tree.h\"), person(\"Internet Systems Consortium, Inc.\", role = \"cph\", comment = \"libuv subcomponent: inet_pton and inet_ntop, contained in src/libuv/src/inet.c\"), person(\"Alexander\", \"Chemeris\", role = \"cph\", comment = \"libuv subcomponent: stdint-msvc2008.h (from msinttypes)\"), person(\"Google, Inc.\", role = \"cph\", comment = \"libuv subcomponent: pthread-fixes.c\"), person(\"Sony Mobile Communcations AB\", role = \"cph\", comment = \"libuv subcomponent: pthread-fixes.c\"), person(\"Berkeley Software Design Inc.\", role = \"cph\", comment = \"libuv subcomponent: android-ifaddrs.h, android-ifaddrs.c\"), person(\"Kenneth\", \"MacKay\", role = \"cph\", comment = \"libuv subcomponent: android-ifaddrs.h, android-ifaddrs.c\"), person(\"Emergya (Cloud4all, FP7/2007-2013, grant agreement no 289016)\", role = \"cph\", comment = \"libuv subcomponent: android-ifaddrs.h, android-ifaddrs.c\"), person(\"Steve\", \"Reid\", role = \"aut\", comment = \"SHA-1 implementation\"), person(\"James\", \"Brown\", role = \"aut\", comment = \"SHA-1 implementation\"), person(\"Bob\", \"Trower\", role = \"aut\", comment = \"base64 implementation\"), person(\"Alexander\", \"Peslyak\", role = \"aut\", comment = \"MD5 implementation\"), person(\"Trantor Standard Systems\", role = \"cph\", comment = \"base64 implementation\"), person(\"Igor\", \"Sysoev\", role = \"cph\", comment = \"http-parser\") )", + "Description": "Provides low-level socket and protocol support for handling HTTP and WebSocket requests directly from within R. It is primarily intended as a building block for other packages, rather than making it particularly easy to create complete web applications using httpuv alone. httpuv is built on top of the libuv and http-parser C libraries, both of which were developed by Joyent, Inc. (See LICENSE file for libuv and http-parser license information.)", + "License": "GPL (>= 2) | file LICENSE", + "URL": "https://github.com/rstudio/httpuv", + "BugReports": "https://github.com/rstudio/httpuv/issues", + "Depends": [ + "R (>= 2.15.1)" + ], + "Imports": [ + "later (>= 0.8.0)", + "promises", + "R6", + "Rcpp (>= 1.0.7)", + "utils" + ], + "Suggests": [ + "callr", + "curl", + "jsonlite", + "testthat", + "websocket" + ], + "LinkingTo": [ + "later", + "Rcpp" + ], + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "SystemRequirements": "GNU make, zlib", + "Collate": "'RcppExports.R' 'httpuv.R' 'random_port.R' 'server.R' 'staticServer.R' 'static_paths.R' 'utils.R'", + "NeedsCompilation": "yes", + "Author": "Joe Cheng [aut], Winston Chang [aut, cre], Posit, PBC fnd [cph], Hector Corrada Bravo [ctb], Jeroen Ooms [ctb], Andrzej Krzemienski [cph] (optional.hpp), libuv project contributors [cph] (libuv library, see src/libuv/AUTHORS file), Joyent, Inc. and other Node contributors [cph] (libuv library, see src/libuv/AUTHORS file; and http-parser library, see src/http-parser/AUTHORS file), Niels Provos [cph] (libuv subcomponent: tree.h), Internet Systems Consortium, Inc. [cph] (libuv subcomponent: inet_pton and inet_ntop, contained in src/libuv/src/inet.c), Alexander Chemeris [cph] (libuv subcomponent: stdint-msvc2008.h (from msinttypes)), Google, Inc. [cph] (libuv subcomponent: pthread-fixes.c), Sony Mobile Communcations AB [cph] (libuv subcomponent: pthread-fixes.c), Berkeley Software Design Inc. [cph] (libuv subcomponent: android-ifaddrs.h, android-ifaddrs.c), Kenneth MacKay [cph] (libuv subcomponent: android-ifaddrs.h, android-ifaddrs.c), Emergya (Cloud4all, FP7/2007-2013, grant agreement no 289016) [cph] (libuv subcomponent: android-ifaddrs.h, android-ifaddrs.c), Steve Reid [aut] (SHA-1 implementation), James Brown [aut] (SHA-1 implementation), Bob Trower [aut] (base64 implementation), Alexander Peslyak [aut] (MD5 implementation), Trantor Standard Systems [cph] (base64 implementation), Igor Sysoev [cph] (http-parser)", + "Maintainer": "Winston Chang ", + "Repository": "CRAN" + }, + "httr2": { + "Package": "httr2", + "Version": "1.2.1", + "Source": "Repository", + "Title": "Perform HTTP Requests and Process the Responses", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"Maximilian\", \"Girlich\", role = \"ctb\") )", + "Description": "Tools for creating and modifying HTTP requests, then performing them and processing the results. 'httr2' is a modern re-imagining of 'httr' that uses a pipe-based interface and solves more of the problems that API wrapping packages face.", + "License": "MIT + file LICENSE", + "URL": "https://httr2.r-lib.org, https://github.com/r-lib/httr2", + "BugReports": "https://github.com/r-lib/httr2/issues", + "Depends": [ + "R (>= 4.1)" + ], + "Imports": [ + "cli (>= 3.0.0)", + "curl (>= 6.4.0)", + "glue", + "lifecycle", + "magrittr", + "openssl", + "R6", + "rappdirs", + "rlang (>= 1.1.0)", + "vctrs (>= 0.6.3)", + "withr" + ], + "Suggests": [ + "askpass", + "bench", + "clipr", + "covr", + "docopt", + "httpuv", + "jose", + "jsonlite", + "knitr", + "later (>= 1.4.0)", + "nanonext", + "paws.common", + "promises", + "rmarkdown", + "testthat (>= 3.1.8)", + "tibble", + "webfakes (>= 1.4.0)", + "xml2" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", + "Config/testthat/start-first": "resp-stream, req-perform", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut, cre], Posit Software, PBC [cph, fnd], Maximilian Girlich [ctb]", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "ini": { + "Package": "ini", + "Version": "0.3.1", + "Source": "Repository", + "Type": "Package", + "Title": "Read and Write '.ini' Files", + "Date": "2018-05-19", + "Author": "David Valentim Dias", + "Maintainer": "David Valentim Dias ", + "Description": "Parse simple '.ini' configuration files to an structured list. Users can manipulate this resulting list with lapply() functions. This same structured list can be used to write back to file after modifications.", + "License": "GPL-3", + "URL": "https://github.com/dvdscripter/ini", + "BugReports": "https://github.com/dvdscripter/ini/issues", + "LazyData": "FALSE", + "RoxygenNote": "6.0.1", + "Suggests": [ + "testthat" + ], + "NeedsCompilation": "no", + "Repository": "CRAN" + }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository", + "Title": "Obtain 'jQuery' as an HTML Dependency Object", + "Authors@R": "c( person(\"Carson\", \"Sievert\", role = c(\"aut\", \"cre\"), email = \"carson@rstudio.com\", comment = c(ORCID = \"0000-0002-4958-2844\")), person(\"Joe\", \"Cheng\", role = \"aut\", email = \"joe@rstudio.com\"), person(family = \"RStudio\", role = \"cph\"), person(family = \"jQuery Foundation\", role = \"cph\", comment = \"jQuery library and jQuery UI library\"), person(family = \"jQuery contributors\", role = c(\"ctb\", \"cph\"), comment = \"jQuery library; authors listed in inst/lib/jquery-AUTHORS.txt\") )", + "Description": "Obtain any major version of 'jQuery' () and use it in any webpage generated by 'htmltools' (e.g. 'shiny', 'htmlwidgets', and 'rmarkdown'). Most R users don't need to use this package directly, but other R packages (e.g. 'shiny', 'rmarkdown', etc.) depend on this package to avoid bundling redundant copies of 'jQuery'.", + "License": "MIT + file LICENSE", + "Encoding": "UTF-8", + "Config/testthat/edition": "3", + "RoxygenNote": "7.0.2", + "Imports": [ + "htmltools" + ], + "Suggests": [ + "testthat" + ], + "NeedsCompilation": "no", + "Author": "Carson Sievert [aut, cre] (), Joe Cheng [aut], RStudio [cph], jQuery Foundation [cph] (jQuery library and jQuery UI library), jQuery contributors [ctb, cph] (jQuery library; authors listed in inst/lib/jquery-AUTHORS.txt)", + "Maintainer": "Carson Sievert ", + "Repository": "CRAN" + }, + "jsonlite": { + "Package": "jsonlite", + "Version": "2.0.0", + "Source": "Repository", + "Title": "A Simple and Robust JSON Parser and Generator for R", + "License": "MIT + file LICENSE", + "Depends": [ + "methods" + ], + "Authors@R": "c( person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Duncan\", \"Temple Lang\", role = \"ctb\"), person(\"Lloyd\", \"Hilaiel\", role = \"cph\", comment=\"author of bundled libyajl\"))", + "URL": "https://jeroen.r-universe.dev/jsonlite https://arxiv.org/abs/1403.2805", + "BugReports": "https://github.com/jeroen/jsonlite/issues", + "Maintainer": "Jeroen Ooms ", + "VignetteBuilder": "knitr, R.rsp", + "Description": "A reasonably fast JSON parser and generator, optimized for statistical data and the web. Offers simple, flexible tools for working with JSON in R, and is particularly powerful for building pipelines and interacting with a web API. The implementation is based on the mapping described in the vignette (Ooms, 2014). In addition to converting JSON data from/to R objects, 'jsonlite' contains functions to stream, validate, and prettify JSON data. The unit tests included with the package verify that all edge cases are encoded and decoded consistently for use with dynamic data in systems and applications.", + "Suggests": [ + "httr", + "vctrs", + "testthat", + "knitr", + "rmarkdown", + "R.rsp", + "sf" + ], + "RoxygenNote": "7.3.2", + "Encoding": "UTF-8", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (), Duncan Temple Lang [ctb], Lloyd Hilaiel [cph] (author of bundled libyajl)", + "Repository": "CRAN" + }, + "knitr": { + "Package": "knitr", + "Version": "1.50", + "Source": "Repository", + "Type": "Package", + "Title": "A General-Purpose Package for Dynamic Report Generation in R", + "Authors@R": "c( person(\"Yihui\", \"Xie\", role = c(\"aut\", \"cre\"), email = \"xie@yihui.name\", comment = c(ORCID = \"0000-0003-0645-5666\", URL = \"https://yihui.org\")), person(\"Abhraneel\", \"Sarma\", role = \"ctb\"), person(\"Adam\", \"Vogt\", role = \"ctb\"), person(\"Alastair\", \"Andrew\", role = \"ctb\"), person(\"Alex\", \"Zvoleff\", role = \"ctb\"), person(\"Amar\", \"Al-Zubaidi\", role = \"ctb\"), person(\"Andre\", \"Simon\", role = \"ctb\", comment = \"the CSS files under inst/themes/ were derived from the Highlight package http://www.andre-simon.de\"), person(\"Aron\", \"Atkins\", role = \"ctb\"), person(\"Aaron\", \"Wolen\", role = \"ctb\"), person(\"Ashley\", \"Manton\", role = \"ctb\"), person(\"Atsushi\", \"Yasumoto\", role = \"ctb\", comment = c(ORCID = \"0000-0002-8335-495X\")), person(\"Ben\", \"Baumer\", role = \"ctb\"), person(\"Brian\", \"Diggs\", role = \"ctb\"), person(\"Brian\", \"Zhang\", role = \"ctb\"), person(\"Bulat\", \"Yapparov\", role = \"ctb\"), person(\"Cassio\", \"Pereira\", role = \"ctb\"), person(\"Christophe\", \"Dervieux\", role = \"ctb\"), person(\"David\", \"Hall\", role = \"ctb\"), person(\"David\", \"Hugh-Jones\", role = \"ctb\"), person(\"David\", \"Robinson\", role = \"ctb\"), person(\"Doug\", \"Hemken\", role = \"ctb\"), person(\"Duncan\", \"Murdoch\", role = \"ctb\"), person(\"Elio\", \"Campitelli\", role = \"ctb\"), person(\"Ellis\", \"Hughes\", role = \"ctb\"), person(\"Emily\", \"Riederer\", role = \"ctb\"), person(\"Fabian\", \"Hirschmann\", role = \"ctb\"), person(\"Fitch\", \"Simeon\", role = \"ctb\"), person(\"Forest\", \"Fang\", role = \"ctb\"), person(c(\"Frank\", \"E\", \"Harrell\", \"Jr\"), role = \"ctb\", comment = \"the Sweavel package at inst/misc/Sweavel.sty\"), person(\"Garrick\", \"Aden-Buie\", role = \"ctb\"), person(\"Gregoire\", \"Detrez\", role = \"ctb\"), person(\"Hadley\", \"Wickham\", role = \"ctb\"), person(\"Hao\", \"Zhu\", role = \"ctb\"), person(\"Heewon\", \"Jeon\", role = \"ctb\"), person(\"Henrik\", \"Bengtsson\", role = \"ctb\"), person(\"Hiroaki\", \"Yutani\", role = \"ctb\"), person(\"Ian\", \"Lyttle\", role = \"ctb\"), person(\"Hodges\", \"Daniel\", role = \"ctb\"), person(\"Jacob\", \"Bien\", role = \"ctb\"), person(\"Jake\", \"Burkhead\", role = \"ctb\"), person(\"James\", \"Manton\", role = \"ctb\"), person(\"Jared\", \"Lander\", role = \"ctb\"), person(\"Jason\", \"Punyon\", role = \"ctb\"), person(\"Javier\", \"Luraschi\", role = \"ctb\"), person(\"Jeff\", \"Arnold\", role = \"ctb\"), person(\"Jenny\", \"Bryan\", role = \"ctb\"), person(\"Jeremy\", \"Ashkenas\", role = c(\"ctb\", \"cph\"), comment = \"the CSS file at inst/misc/docco-classic.css\"), person(\"Jeremy\", \"Stephens\", role = \"ctb\"), person(\"Jim\", \"Hester\", role = \"ctb\"), person(\"Joe\", \"Cheng\", role = \"ctb\"), person(\"Johannes\", \"Ranke\", role = \"ctb\"), person(\"John\", \"Honaker\", role = \"ctb\"), person(\"John\", \"Muschelli\", role = \"ctb\"), person(\"Jonathan\", \"Keane\", role = \"ctb\"), person(\"JJ\", \"Allaire\", role = \"ctb\"), person(\"Johan\", \"Toloe\", role = \"ctb\"), person(\"Jonathan\", \"Sidi\", role = \"ctb\"), person(\"Joseph\", \"Larmarange\", role = \"ctb\"), person(\"Julien\", \"Barnier\", role = \"ctb\"), person(\"Kaiyin\", \"Zhong\", role = \"ctb\"), person(\"Kamil\", \"Slowikowski\", role = \"ctb\"), person(\"Karl\", \"Forner\", role = \"ctb\"), person(c(\"Kevin\", \"K.\"), \"Smith\", role = \"ctb\"), person(\"Kirill\", \"Mueller\", role = \"ctb\"), person(\"Kohske\", \"Takahashi\", role = \"ctb\"), person(\"Lorenz\", \"Walthert\", role = \"ctb\"), person(\"Lucas\", \"Gallindo\", role = \"ctb\"), person(\"Marius\", \"Hofert\", role = \"ctb\"), person(\"Martin\", \"Modrák\", role = \"ctb\"), person(\"Michael\", \"Chirico\", role = \"ctb\"), person(\"Michael\", \"Friendly\", role = \"ctb\"), person(\"Michal\", \"Bojanowski\", role = \"ctb\"), person(\"Michel\", \"Kuhlmann\", role = \"ctb\"), person(\"Miller\", \"Patrick\", role = \"ctb\"), person(\"Nacho\", \"Caballero\", role = \"ctb\"), person(\"Nick\", \"Salkowski\", role = \"ctb\"), person(\"Niels Richard\", \"Hansen\", role = \"ctb\"), person(\"Noam\", \"Ross\", role = \"ctb\"), person(\"Obada\", \"Mahdi\", role = \"ctb\"), person(\"Pavel N.\", \"Krivitsky\", role = \"ctb\", comment=c(ORCID = \"0000-0002-9101-3362\")), person(\"Pedro\", \"Faria\", role = \"ctb\"), person(\"Qiang\", \"Li\", role = \"ctb\"), person(\"Ramnath\", \"Vaidyanathan\", role = \"ctb\"), person(\"Richard\", \"Cotton\", role = \"ctb\"), person(\"Robert\", \"Krzyzanowski\", role = \"ctb\"), person(\"Rodrigo\", \"Copetti\", role = \"ctb\"), person(\"Romain\", \"Francois\", role = \"ctb\"), person(\"Ruaridh\", \"Williamson\", role = \"ctb\"), person(\"Sagiru\", \"Mati\", role = \"ctb\", comment = c(ORCID = \"0000-0003-1413-3974\")), person(\"Scott\", \"Kostyshak\", role = \"ctb\"), person(\"Sebastian\", \"Meyer\", role = \"ctb\"), person(\"Sietse\", \"Brouwer\", role = \"ctb\"), person(c(\"Simon\", \"de\"), \"Bernard\", role = \"ctb\"), person(\"Sylvain\", \"Rousseau\", role = \"ctb\"), person(\"Taiyun\", \"Wei\", role = \"ctb\"), person(\"Thibaut\", \"Assus\", role = \"ctb\"), person(\"Thibaut\", \"Lamadon\", role = \"ctb\"), person(\"Thomas\", \"Leeper\", role = \"ctb\"), person(\"Tim\", \"Mastny\", role = \"ctb\"), person(\"Tom\", \"Torsney-Weir\", role = \"ctb\"), person(\"Trevor\", \"Davis\", role = \"ctb\"), person(\"Viktoras\", \"Veitas\", role = \"ctb\"), person(\"Weicheng\", \"Zhu\", role = \"ctb\"), person(\"Wush\", \"Wu\", role = \"ctb\"), person(\"Zachary\", \"Foster\", role = \"ctb\"), person(\"Zhian N.\", \"Kamvar\", role = \"ctb\", comment = c(ORCID = \"0000-0003-1458-7108\")), person(given = \"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Provides a general-purpose tool for dynamic report generation in R using Literate Programming techniques.", + "Depends": [ + "R (>= 3.6.0)" + ], + "Imports": [ + "evaluate (>= 0.15)", + "highr (>= 0.11)", + "methods", + "tools", + "xfun (>= 0.51)", + "yaml (>= 2.1.19)" + ], + "Suggests": [ + "bslib", + "codetools", + "DBI (>= 0.4-1)", + "digest", + "formatR", + "gifski", + "gridSVG", + "htmlwidgets (>= 0.7)", + "jpeg", + "JuliaCall (>= 0.11.1)", + "magick", + "litedown", + "markdown (>= 1.3)", + "png", + "ragg", + "reticulate (>= 1.4)", + "rgl (>= 0.95.1201)", + "rlang", + "rmarkdown", + "sass", + "showtext", + "styler (>= 1.2.0)", + "targets (>= 0.6.0)", + "testit", + "tibble", + "tikzDevice (>= 0.10)", + "tinytex (>= 0.56)", + "webshot", + "rstudioapi", + "svglite" + ], + "License": "GPL", + "URL": "https://yihui.org/knitr/", + "BugReports": "https://github.com/yihui/knitr/issues", + "Encoding": "UTF-8", + "VignetteBuilder": "litedown, knitr", + "SystemRequirements": "Package vignettes based on R Markdown v2 or reStructuredText require Pandoc (http://pandoc.org). The function rst2pdf() requires rst2pdf (https://github.com/rst2pdf/rst2pdf).", + "Collate": "'block.R' 'cache.R' 'citation.R' 'hooks-html.R' 'plot.R' 'utils.R' 'defaults.R' 'concordance.R' 'engine.R' 'highlight.R' 'themes.R' 'header.R' 'hooks-asciidoc.R' 'hooks-chunk.R' 'hooks-extra.R' 'hooks-latex.R' 'hooks-md.R' 'hooks-rst.R' 'hooks-textile.R' 'hooks.R' 'output.R' 'package.R' 'pandoc.R' 'params.R' 'parser.R' 'pattern.R' 'rocco.R' 'spin.R' 'table.R' 'template.R' 'utils-conversion.R' 'utils-rd2html.R' 'utils-string.R' 'utils-sweave.R' 'utils-upload.R' 'utils-vignettes.R' 'zzz.R'", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Yihui Xie [aut, cre] (, https://yihui.org), Abhraneel Sarma [ctb], Adam Vogt [ctb], Alastair Andrew [ctb], Alex Zvoleff [ctb], Amar Al-Zubaidi [ctb], Andre Simon [ctb] (the CSS files under inst/themes/ were derived from the Highlight package http://www.andre-simon.de), Aron Atkins [ctb], Aaron Wolen [ctb], Ashley Manton [ctb], Atsushi Yasumoto [ctb] (), Ben Baumer [ctb], Brian Diggs [ctb], Brian Zhang [ctb], Bulat Yapparov [ctb], Cassio Pereira [ctb], Christophe Dervieux [ctb], David Hall [ctb], David Hugh-Jones [ctb], David Robinson [ctb], Doug Hemken [ctb], Duncan Murdoch [ctb], Elio Campitelli [ctb], Ellis Hughes [ctb], Emily Riederer [ctb], Fabian Hirschmann [ctb], Fitch Simeon [ctb], Forest Fang [ctb], Frank E Harrell Jr [ctb] (the Sweavel package at inst/misc/Sweavel.sty), Garrick Aden-Buie [ctb], Gregoire Detrez [ctb], Hadley Wickham [ctb], Hao Zhu [ctb], Heewon Jeon [ctb], Henrik Bengtsson [ctb], Hiroaki Yutani [ctb], Ian Lyttle [ctb], Hodges Daniel [ctb], Jacob Bien [ctb], Jake Burkhead [ctb], James Manton [ctb], Jared Lander [ctb], Jason Punyon [ctb], Javier Luraschi [ctb], Jeff Arnold [ctb], Jenny Bryan [ctb], Jeremy Ashkenas [ctb, cph] (the CSS file at inst/misc/docco-classic.css), Jeremy Stephens [ctb], Jim Hester [ctb], Joe Cheng [ctb], Johannes Ranke [ctb], John Honaker [ctb], John Muschelli [ctb], Jonathan Keane [ctb], JJ Allaire [ctb], Johan Toloe [ctb], Jonathan Sidi [ctb], Joseph Larmarange [ctb], Julien Barnier [ctb], Kaiyin Zhong [ctb], Kamil Slowikowski [ctb], Karl Forner [ctb], Kevin K. Smith [ctb], Kirill Mueller [ctb], Kohske Takahashi [ctb], Lorenz Walthert [ctb], Lucas Gallindo [ctb], Marius Hofert [ctb], Martin Modrák [ctb], Michael Chirico [ctb], Michael Friendly [ctb], Michal Bojanowski [ctb], Michel Kuhlmann [ctb], Miller Patrick [ctb], Nacho Caballero [ctb], Nick Salkowski [ctb], Niels Richard Hansen [ctb], Noam Ross [ctb], Obada Mahdi [ctb], Pavel N. Krivitsky [ctb] (), Pedro Faria [ctb], Qiang Li [ctb], Ramnath Vaidyanathan [ctb], Richard Cotton [ctb], Robert Krzyzanowski [ctb], Rodrigo Copetti [ctb], Romain Francois [ctb], Ruaridh Williamson [ctb], Sagiru Mati [ctb] (), Scott Kostyshak [ctb], Sebastian Meyer [ctb], Sietse Brouwer [ctb], Simon de Bernard [ctb], Sylvain Rousseau [ctb], Taiyun Wei [ctb], Thibaut Assus [ctb], Thibaut Lamadon [ctb], Thomas Leeper [ctb], Tim Mastny [ctb], Tom Torsney-Weir [ctb], Trevor Davis [ctb], Viktoras Veitas [ctb], Weicheng Zhu [ctb], Wush Wu [ctb], Zachary Foster [ctb], Zhian N. Kamvar [ctb] (), Posit Software, PBC [cph, fnd]", + "Maintainer": "Yihui Xie ", + "Repository": "CRAN" + }, + "later": { + "Package": "later", + "Version": "1.4.4", + "Source": "Repository", + "Type": "Package", + "Title": "Utilities for Scheduling Functions to Execute Later with Event Loops", + "Authors@R": "c( person(\"Winston\", \"Chang\", , \"winston@posit.co\", role = \"aut\"), person(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"), person(\"Charlie\", \"Gao\", , \"charlie.gao@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-0750-061X\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")), person(\"Marcus\", \"Geelnard\", role = c(\"ctb\", \"cph\"), comment = \"TinyCThread library, https://tinycthread.github.io/\"), person(\"Evan\", \"Nemerson\", role = c(\"ctb\", \"cph\"), comment = \"TinyCThread library, https://tinycthread.github.io/\") )", + "Description": "Executes arbitrary R or C functions some time after the current time, after the R execution stack has emptied. The functions are scheduled in an event loop.", + "License": "MIT + file LICENSE", + "URL": "https://later.r-lib.org, https://github.com/r-lib/later", + "BugReports": "https://github.com/r-lib/later/issues", + "Imports": [ + "Rcpp (>= 0.12.9)", + "rlang" + ], + "Suggests": [ + "knitr", + "nanonext", + "rmarkdown", + "testthat (>= 3.0.0)" + ], + "LinkingTo": [ + "Rcpp" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/usethis/last-upkeep": "2025-07-18", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Winston Chang [aut], Joe Cheng [aut], Charlie Gao [aut, cre] (ORCID: ), Posit Software, PBC [cph, fnd] (ROR: ), Marcus Geelnard [ctb, cph] (TinyCThread library, https://tinycthread.github.io/), Evan Nemerson [ctb, cph] (TinyCThread library, https://tinycthread.github.io/)", + "Maintainer": "Charlie Gao ", + "Repository": "CRAN" + }, + "lattice": { + "Package": "lattice", + "Version": "0.22-6", + "Source": "Repository", + "Date": "2024-03-20", + "Priority": "recommended", + "Title": "Trellis Graphics for R", + "Authors@R": "c(person(\"Deepayan\", \"Sarkar\", role = c(\"aut\", \"cre\"), email = \"deepayan.sarkar@r-project.org\", comment = c(ORCID = \"0000-0003-4107-1553\")), person(\"Felix\", \"Andrews\", role = \"ctb\"), person(\"Kevin\", \"Wright\", role = \"ctb\", comment = \"documentation\"), person(\"Neil\", \"Klepeis\", role = \"ctb\"), person(\"Johan\", \"Larsson\", role = \"ctb\", comment = \"miscellaneous improvements\"), person(\"Zhijian (Jason)\", \"Wen\", role = \"cph\", comment = \"filled contour code\"), person(\"Paul\", \"Murrell\", role = \"ctb\", email = \"paul@stat.auckland.ac.nz\"), person(\"Stefan\", \"Eng\", role = \"ctb\", comment = \"violin plot improvements\"), person(\"Achim\", \"Zeileis\", role = \"ctb\", comment = \"modern colors\"), person(\"Alexandre\", \"Courtiol\", role = \"ctb\", comment = \"generics for larrows, lpolygon, lrect and lsegments\") )", + "Description": "A powerful and elegant high-level data visualization system inspired by Trellis graphics, with an emphasis on multivariate data. Lattice is sufficient for typical graphics needs, and is also flexible enough to handle most nonstandard requirements. See ?Lattice for an introduction.", + "Depends": [ + "R (>= 4.0.0)" + ], + "Suggests": [ + "KernSmooth", + "MASS", + "latticeExtra", + "colorspace" + ], + "Imports": [ + "grid", + "grDevices", + "graphics", + "stats", + "utils" + ], + "Enhances": [ + "chron", + "zoo" + ], + "LazyLoad": "yes", + "LazyData": "yes", + "License": "GPL (>= 2)", + "URL": "https://lattice.r-forge.r-project.org/", + "BugReports": "https://github.com/deepayan/lattice/issues", + "NeedsCompilation": "yes", + "Author": "Deepayan Sarkar [aut, cre] (), Felix Andrews [ctb], Kevin Wright [ctb] (documentation), Neil Klepeis [ctb], Johan Larsson [ctb] (miscellaneous improvements), Zhijian (Jason) Wen [cph] (filled contour code), Paul Murrell [ctb], Stefan Eng [ctb] (violin plot improvements), Achim Zeileis [ctb] (modern colors), Alexandre Courtiol [ctb] (generics for larrows, lpolygon, lrect and lsegments)", + "Maintainer": "Deepayan Sarkar ", + "Repository": "CRAN" + }, + "lifecycle": { + "Package": "lifecycle", + "Version": "1.0.4", + "Source": "Repository", + "Title": "Manage the Life Cycle of your Package Functions", + "Authors@R": "c( person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = c(\"aut\", \"cre\")), person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Manage the life cycle of your exported functions with shared conventions, documentation badges, and user-friendly deprecation warnings.", + "License": "MIT + file LICENSE", + "URL": "https://lifecycle.r-lib.org/, https://github.com/r-lib/lifecycle", + "BugReports": "https://github.com/r-lib/lifecycle/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Imports": [ + "cli (>= 3.4.0)", + "glue", + "rlang (>= 1.1.0)" + ], + "Suggests": [ + "covr", + "crayon", + "knitr", + "lintr", + "rmarkdown", + "testthat (>= 3.0.1)", + "tibble", + "tidyverse", + "tools", + "vctrs", + "withr" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate, usethis", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.2.1", + "NeedsCompilation": "no", + "Author": "Lionel Henry [aut, cre], Hadley Wickham [aut] (), Posit Software, PBC [cph, fnd]", + "Maintainer": "Lionel Henry ", + "Repository": "CRAN" + }, + "lubridate": { + "Package": "lubridate", + "Version": "1.9.4", + "Source": "Repository", + "Type": "Package", + "Title": "Make Dealing with Dates a Little Easier", + "Authors@R": "c( person(\"Vitalie\", \"Spinu\", , \"spinuvit@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Garrett\", \"Grolemund\", role = \"aut\"), person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Davis\", \"Vaughan\", role = \"ctb\"), person(\"Ian\", \"Lyttle\", role = \"ctb\"), person(\"Imanuel\", \"Costigan\", role = \"ctb\"), person(\"Jason\", \"Law\", role = \"ctb\"), person(\"Doug\", \"Mitarotonda\", role = \"ctb\"), person(\"Joseph\", \"Larmarange\", role = \"ctb\"), person(\"Jonathan\", \"Boiser\", role = \"ctb\"), person(\"Chel Hee\", \"Lee\", role = \"ctb\") )", + "Maintainer": "Vitalie Spinu ", + "Description": "Functions to work with date-times and time-spans: fast and user friendly parsing of date-time data, extraction and updating of components of a date-time (years, months, days, hours, minutes, and seconds), algebraic manipulation on date-time and time-span objects. The 'lubridate' package has a consistent and memorable syntax that makes working with dates easy and fun.", + "License": "GPL (>= 2)", + "URL": "https://lubridate.tidyverse.org, https://github.com/tidyverse/lubridate", + "BugReports": "https://github.com/tidyverse/lubridate/issues", + "Depends": [ + "methods", + "R (>= 3.2)" + ], + "Imports": [ + "generics", + "timechange (>= 0.3.0)" + ], + "Suggests": [ + "covr", + "knitr", + "rmarkdown", + "testthat (>= 2.1.0)", + "vctrs (>= 0.6.5)" + ], + "Enhances": [ + "chron", + "data.table", + "timeDate", + "tis", + "zoo" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "LazyData": "true", + "RoxygenNote": "7.2.3", + "SystemRequirements": "C++11, A system with zoneinfo data (e.g. /usr/share/zoneinfo). On Windows the zoneinfo included with R is used.", + "Collate": "'Dates.r' 'POSIXt.r' 'util.r' 'parse.r' 'timespans.r' 'intervals.r' 'difftimes.r' 'durations.r' 'periods.r' 'accessors-date.R' 'accessors-day.r' 'accessors-dst.r' 'accessors-hour.r' 'accessors-minute.r' 'accessors-month.r' 'accessors-quarter.r' 'accessors-second.r' 'accessors-tz.r' 'accessors-week.r' 'accessors-year.r' 'am-pm.r' 'time-zones.r' 'numeric.r' 'coercion.r' 'constants.r' 'cyclic_encoding.r' 'data.r' 'decimal-dates.r' 'deprecated.r' 'format_ISO8601.r' 'guess.r' 'hidden.r' 'instants.r' 'leap-years.r' 'ops-addition.r' 'ops-compare.r' 'ops-division.r' 'ops-integer-division.r' 'ops-m+.r' 'ops-modulo.r' 'ops-multiplication.r' 'ops-subtraction.r' 'package.r' 'pretty.r' 'round.r' 'stamp.r' 'tzdir.R' 'update.r' 'vctrs.R' 'zzz.R'", + "NeedsCompilation": "yes", + "Author": "Vitalie Spinu [aut, cre], Garrett Grolemund [aut], Hadley Wickham [aut], Davis Vaughan [ctb], Ian Lyttle [ctb], Imanuel Costigan [ctb], Jason Law [ctb], Doug Mitarotonda [ctb], Joseph Larmarange [ctb], Jonathan Boiser [ctb], Chel Hee Lee [ctb]", + "Repository": "CRAN" + }, + "magrittr": { + "Package": "magrittr", + "Version": "2.0.4", + "Source": "Repository", + "Type": "Package", + "Title": "A Forward-Pipe Operator for R", + "Authors@R": "c( person(\"Stefan Milton\", \"Bache\", , \"stefan@stefanbache.dk\", role = c(\"aut\", \"cph\"), comment = \"Original author and creator of magrittr\"), person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\"), person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = \"cre\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Provides a mechanism for chaining commands with a new forward-pipe operator, %>%. This operator will forward a value, or the result of an expression, into the next function call/expression. There is flexible support for the type of right-hand side expressions. For more information, see package vignette. To quote Rene Magritte, \"Ceci n'est pas un pipe.\"", + "License": "MIT + file LICENSE", + "URL": "https://magrittr.tidyverse.org, https://github.com/tidyverse/magrittr", + "BugReports": "https://github.com/tidyverse/magrittr/issues", + "Depends": [ + "R (>= 3.4.0)" + ], + "Suggests": [ + "covr", + "knitr", + "rlang", + "rmarkdown", + "testthat" + ], + "VignetteBuilder": "knitr", + "ByteCompile": "Yes", + "Config/Needs/website": "tidyverse/tidytemplate", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.3", + "NeedsCompilation": "yes", + "Author": "Stefan Milton Bache [aut, cph] (Original author and creator of magrittr), Hadley Wickham [aut], Lionel Henry [cre], Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Lionel Henry ", + "Repository": "CRAN" + }, + "memoise": { + "Package": "memoise", + "Version": "2.0.1", + "Source": "Repository", + "Title": "'Memoisation' of Functions", + "Authors@R": "c(person(given = \"Hadley\", family = \"Wickham\", role = \"aut\", email = \"hadley@rstudio.com\"), person(given = \"Jim\", family = \"Hester\", role = \"aut\"), person(given = \"Winston\", family = \"Chang\", role = c(\"aut\", \"cre\"), email = \"winston@rstudio.com\"), person(given = \"Kirill\", family = \"Müller\", role = \"aut\", email = \"krlmlr+r@mailbox.org\"), person(given = \"Daniel\", family = \"Cook\", role = \"aut\", email = \"danielecook@gmail.com\"), person(given = \"Mark\", family = \"Edmondson\", role = \"ctb\", email = \"r@sunholo.com\"))", + "Description": "Cache the results of a function so that when you call it again with the same arguments it returns the previously computed value.", + "License": "MIT + file LICENSE", + "URL": "https://memoise.r-lib.org, https://github.com/r-lib/memoise", + "BugReports": "https://github.com/r-lib/memoise/issues", + "Imports": [ + "rlang (>= 0.4.10)", + "cachem" + ], + "Suggests": [ + "digest", + "aws.s3", + "covr", + "googleAuthR", + "googleCloudStorageR", + "httr", + "testthat" + ], + "Encoding": "UTF-8", + "RoxygenNote": "7.1.2", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut], Jim Hester [aut], Winston Chang [aut, cre], Kirill Müller [aut], Daniel Cook [aut], Mark Edmondson [ctb]", + "Maintainer": "Winston Chang ", + "Repository": "CRAN" + }, + "mgcv": { + "Package": "mgcv", + "Version": "1.9-1", + "Source": "Repository", + "Author": "Simon Wood ", + "Maintainer": "Simon Wood ", + "Title": "Mixed GAM Computation Vehicle with Automatic Smoothness Estimation", + "Description": "Generalized additive (mixed) models, some of their extensions and other generalized ridge regression with multiple smoothing parameter estimation by (Restricted) Marginal Likelihood, Generalized Cross Validation and similar, or using iterated nested Laplace approximation for fully Bayesian inference. See Wood (2017) for an overview. Includes a gam() function, a wide variety of smoothers, 'JAGS' support and distributions beyond the exponential family.", + "Priority": "recommended", + "Depends": [ + "R (>= 3.6.0)", + "nlme (>= 3.1-64)" + ], + "Imports": [ + "methods", + "stats", + "graphics", + "Matrix", + "splines", + "utils" + ], + "Suggests": [ + "parallel", + "survival", + "MASS" + ], + "LazyLoad": "yes", + "ByteCompile": "yes", + "License": "GPL (>= 2)", + "NeedsCompilation": "yes", + "Repository": "CRAN" + }, + "mime": { + "Package": "mime", + "Version": "0.13", + "Source": "Repository", + "Type": "Package", + "Title": "Map Filenames to MIME Types", + "Authors@R": "c( person(\"Yihui\", \"Xie\", role = c(\"aut\", \"cre\"), email = \"xie@yihui.name\", comment = c(ORCID = \"0000-0003-0645-5666\", URL = \"https://yihui.org\")), person(\"Jeffrey\", \"Horner\", role = \"ctb\"), person(\"Beilei\", \"Bian\", role = \"ctb\") )", + "Description": "Guesses the MIME type from a filename extension using the data derived from /etc/mime.types in UNIX-type systems.", + "Imports": [ + "tools" + ], + "License": "GPL", + "URL": "https://github.com/yihui/mime", + "BugReports": "https://github.com/yihui/mime/issues", + "RoxygenNote": "7.3.2", + "Encoding": "UTF-8", + "NeedsCompilation": "yes", + "Author": "Yihui Xie [aut, cre] (, https://yihui.org), Jeffrey Horner [ctb], Beilei Bian [ctb]", + "Maintainer": "Yihui Xie ", + "Repository": "CRAN" + }, + "miniUI": { + "Package": "miniUI", + "Version": "0.1.2", + "Source": "Repository", + "Type": "Package", + "Title": "Shiny UI Widgets for Small Screens", + "Authors@R": "c( person(\"Joe\", \"Cheng\", role = c(\"cre\", \"aut\"), email = \"joe@posit.co\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Provides UI widget and layout functions for writing Shiny apps that work well on small screens.", + "License": "GPL-3", + "URL": "https://github.com/rstudio/miniUI", + "BugReports": "https://github.com/rstudio/miniUI/issues", + "Imports": [ + "shiny (>= 0.13)", + "htmltools (>= 0.3)", + "utils" + ], + "RoxygenNote": "7.3.2", + "Encoding": "UTF-8", + "NeedsCompilation": "no", + "Author": "Joe Cheng [cre, aut], Posit Software, PBC [cph, fnd] (03wc8by49)", + "Maintainer": "Joe Cheng ", + "Repository": "CRAN" + }, + "nlme": { + "Package": "nlme", + "Version": "3.1-166", + "Source": "Repository", + "Date": "2024-08-13", + "Priority": "recommended", + "Title": "Linear and Nonlinear Mixed Effects Models", + "Authors@R": "c(person(\"José\", \"Pinheiro\", role = \"aut\", comment = \"S version\"), person(\"Douglas\", \"Bates\", role = \"aut\", comment = \"up to 2007\"), person(\"Saikat\", \"DebRoy\", role = \"ctb\", comment = \"up to 2002\"), person(\"Deepayan\", \"Sarkar\", role = \"ctb\", comment = \"up to 2005\"), person(\"EISPACK authors\", role = \"ctb\", comment = \"src/rs.f\"), person(\"Siem\", \"Heisterkamp\", role = \"ctb\", comment = \"Author fixed sigma\"), person(\"Bert\", \"Van Willigen\",role = \"ctb\", comment = \"Programmer fixed sigma\"), person(\"Johannes\", \"Ranke\", role = \"ctb\", comment = \"varConstProp()\"), person(\"R Core Team\", email = \"R-core@R-project.org\", role = c(\"aut\", \"cre\")))", + "Contact": "see 'MailingList'", + "Description": "Fit and compare Gaussian linear and nonlinear mixed-effects models.", + "Depends": [ + "R (>= 3.6.0)" + ], + "Imports": [ + "graphics", + "stats", + "utils", + "lattice" + ], + "Suggests": [ + "MASS", + "SASmixed" + ], + "LazyData": "yes", + "Encoding": "UTF-8", + "License": "GPL (>= 2)", + "BugReports": "https://bugs.r-project.org", + "MailingList": "R-help@r-project.org", + "URL": "https://svn.r-project.org/R-packages/trunk/nlme/", + "NeedsCompilation": "yes", + "Author": "José Pinheiro [aut] (S version), Douglas Bates [aut] (up to 2007), Saikat DebRoy [ctb] (up to 2002), Deepayan Sarkar [ctb] (up to 2005), EISPACK authors [ctb] (src/rs.f), Siem Heisterkamp [ctb] (Author fixed sigma), Bert Van Willigen [ctb] (Programmer fixed sigma), Johannes Ranke [ctb] (varConstProp()), R Core Team [aut, cre]", + "Maintainer": "R Core Team ", + "Repository": "CRAN" + }, + "nnet": { + "Package": "nnet", + "Version": "7.3-19", + "Source": "Repository", + "Priority": "recommended", + "Date": "2023-05-02", + "Depends": [ + "R (>= 3.0.0)", + "stats", + "utils" + ], + "Suggests": [ + "MASS" + ], + "Authors@R": "c(person(\"Brian\", \"Ripley\", role = c(\"aut\", \"cre\", \"cph\"), email = \"ripley@stats.ox.ac.uk\"), person(\"William\", \"Venables\", role = \"cph\"))", + "Description": "Software for feed-forward neural networks with a single hidden layer, and for multinomial log-linear models.", + "Title": "Feed-Forward Neural Networks and Multinomial Log-Linear Models", + "ByteCompile": "yes", + "License": "GPL-2 | GPL-3", + "URL": "http://www.stats.ox.ac.uk/pub/MASS4/", + "NeedsCompilation": "yes", + "Author": "Brian Ripley [aut, cre, cph], William Venables [cph]", + "Maintainer": "Brian Ripley ", + "Repository": "CRAN" + }, + "openssl": { + "Package": "openssl", + "Version": "2.3.4", + "Source": "Repository", + "Type": "Package", + "Title": "Toolkit for Encryption, Signatures and Certificates Based on OpenSSL", + "Authors@R": "c(person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Oliver\", \"Keyes\", role = \"ctb\"))", + "Description": "Bindings to OpenSSL libssl and libcrypto, plus custom SSH key parsers. Supports RSA, DSA and EC curves P-256, P-384, P-521, and curve25519. Cryptographic signatures can either be created and verified manually or via x509 certificates. AES can be used in cbc, ctr or gcm mode for symmetric encryption; RSA for asymmetric (public key) encryption or EC for Diffie Hellman. High-level envelope functions combine RSA and AES for encrypting arbitrary sized data. Other utilities include key generators, hash functions (md5, sha1, sha256, etc), base64 encoder, a secure random number generator, and 'bignum' math methods for manually performing crypto calculations on large multibyte integers.", + "License": "MIT + file LICENSE", + "URL": "https://jeroen.r-universe.dev/openssl", + "BugReports": "https://github.com/jeroen/openssl/issues", + "SystemRequirements": "OpenSSL >= 1.0.2", + "VignetteBuilder": "knitr", + "Imports": [ + "askpass" + ], + "Suggests": [ + "curl", + "testthat (>= 2.1.0)", + "digest", + "knitr", + "rmarkdown", + "jsonlite", + "jose", + "sodium" + ], + "RoxygenNote": "7.3.2", + "Encoding": "UTF-8", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (ORCID: ), Oliver Keyes [ctb]", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, + "otel": { + "Package": "otel", + "Version": "0.2.0", + "Source": "Repository", + "Title": "OpenTelemetry R API", + "Authors@R": "person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\"))", + "Description": "High-quality, ubiquitous, and portable telemetry to enable effective observability. OpenTelemetry is a collection of tools, APIs, and SDKs used to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) for analysis in order to understand your software's performance and behavior. This package implements the OpenTelemetry API: . Use this package as a dependency if you want to instrument your R package for OpenTelemetry.", + "License": "MIT + file LICENSE", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2.9000", + "Depends": [ + "R (>= 3.6.0)" + ], + "Suggests": [ + "callr", + "cli", + "glue", + "jsonlite", + "otelsdk", + "processx", + "shiny", + "spelling", + "testthat (>= 3.0.0)", + "utils", + "withr" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "URL": "https://otel.r-lib.org, https://github.com/r-lib/otel", + "Additional_repositories": "https://github.com/r-lib/otelsdk/releases/download/devel", + "BugReports": "https://github.com/r-lib/otel/issues", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [aut, cre]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "pillar": { + "Package": "pillar", + "Version": "1.11.1", + "Source": "Repository", + "Title": "Coloured Formatting for Columns", + "Authors@R": "c(person(given = \"Kirill\", family = \"M\\u00fcller\", role = c(\"aut\", \"cre\"), email = \"kirill@cynkra.com\", comment = c(ORCID = \"0000-0002-1416-3412\")), person(given = \"Hadley\", family = \"Wickham\", role = \"aut\"), person(given = \"RStudio\", role = \"cph\"))", + "Description": "Provides 'pillar' and 'colonnade' generics designed for formatting columns of data using the full range of colours provided by modern terminals.", + "License": "MIT + file LICENSE", + "URL": "https://pillar.r-lib.org/, https://github.com/r-lib/pillar", + "BugReports": "https://github.com/r-lib/pillar/issues", + "Imports": [ + "cli (>= 2.3.0)", + "glue", + "lifecycle", + "rlang (>= 1.0.2)", + "utf8 (>= 1.1.0)", + "utils", + "vctrs (>= 0.5.0)" + ], + "Suggests": [ + "bit64", + "DBI", + "debugme", + "DiagrammeR", + "dplyr", + "formattable", + "ggplot2", + "knitr", + "lubridate", + "nanotime", + "nycflights13", + "palmerpenguins", + "rmarkdown", + "scales", + "stringi", + "survival", + "testthat (>= 3.1.1)", + "tibble", + "units (>= 0.7.2)", + "vdiffr", + "withr" + ], + "VignetteBuilder": "knitr", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.3.9000", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", + "Config/testthat/start-first": "format_multi_fuzz, format_multi_fuzz_2, format_multi, ctl_colonnade, ctl_colonnade_1, ctl_colonnade_2", + "Config/autostyle/scope": "line_breaks", + "Config/autostyle/strict": "true", + "Config/gha/extra-packages": "units=?ignore-before-r=4.3.0", + "Config/Needs/website": "tidyverse/tidytemplate", + "NeedsCompilation": "no", + "Author": "Kirill Müller [aut, cre] (ORCID: ), Hadley Wickham [aut], RStudio [cph]", + "Maintainer": "Kirill Müller ", + "Repository": "CRAN" + }, + "pkgbuild": { + "Package": "pkgbuild", + "Version": "1.4.8", + "Source": "Repository", + "Title": "Find Tools Needed to Build R Packages", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Jim\", \"Hester\", role = \"aut\"), person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Provides functions used to build R packages. Locates compilers needed to build R packages on various platforms and ensures the PATH is configured appropriately so R can use them.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-lib/pkgbuild, https://pkgbuild.r-lib.org", + "BugReports": "https://github.com/r-lib/pkgbuild/issues", + "Depends": [ + "R (>= 3.5)" + ], + "Imports": [ + "callr (>= 3.2.0)", + "cli (>= 3.4.0)", + "desc", + "processx", + "R6" + ], + "Suggests": [ + "covr", + "cpp11", + "knitr", + "Rcpp", + "rmarkdown", + "testthat (>= 3.2.0)", + "withr (>= 2.3.0)" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/usethis/last-upkeep": "2025-04-30", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut], Jim Hester [aut], Gábor Csárdi [aut, cre], Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "pkgconfig": { + "Package": "pkgconfig", + "Version": "2.0.3", + "Source": "Repository", + "Title": "Private Configuration for 'R' Packages", + "Author": "Gábor Csárdi", + "Maintainer": "Gábor Csárdi ", + "Description": "Set configuration options on a per-package basis. Options set by a given package only apply to that package, other packages are unaffected.", + "License": "MIT + file LICENSE", + "LazyData": "true", + "Imports": [ + "utils" + ], + "Suggests": [ + "covr", + "testthat", + "disposables (>= 1.0.3)" + ], + "URL": "https://github.com/r-lib/pkgconfig#readme", + "BugReports": "https://github.com/r-lib/pkgconfig/issues", + "Encoding": "UTF-8", + "NeedsCompilation": "no", + "Repository": "CRAN" + }, + "pkgdown": { + "Package": "pkgdown", + "Version": "2.1.3", + "Source": "Repository", + "Title": "Make Static HTML Documentation for a Package", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Jay\", \"Hesselberth\", role = \"aut\", comment = c(ORCID = \"0000-0002-6299-179X\")), person(\"Maëlle\", \"Salmon\", role = \"aut\", comment = c(ORCID = \"0000-0002-2815-0399\")), person(\"Olivier\", \"Roy\", role = \"aut\"), person(\"Salim\", \"Brüggemann\", role = \"aut\", comment = c(ORCID = \"0000-0002-5329-5987\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Generate an attractive and useful website from a source package. 'pkgdown' converts your documentation, vignettes, 'README', and more to 'HTML' making it easy to share information about your package online.", + "License": "MIT + file LICENSE", + "URL": "https://pkgdown.r-lib.org/, https://github.com/r-lib/pkgdown", + "BugReports": "https://github.com/r-lib/pkgdown/issues", + "Depends": [ + "R (>= 4.0.0)" + ], + "Imports": [ + "bslib (>= 0.5.1)", + "callr (>= 3.7.3)", + "cli (>= 3.6.1)", + "desc (>= 1.4.0)", + "downlit (>= 0.4.4)", + "fontawesome", + "fs (>= 1.4.0)", + "httr2 (>= 1.0.2)", + "jsonlite", + "openssl", + "purrr (>= 1.0.0)", + "ragg (>= 1.4.0)", + "rlang (>= 1.1.4)", + "rmarkdown (>= 2.27)", + "tibble", + "whisker", + "withr (>= 2.4.3)", + "xml2 (>= 1.3.1)", + "yaml" + ], + "Suggests": [ + "covr", + "diffviewer", + "evaluate (>= 0.24.0)", + "gert", + "gt", + "htmltools", + "htmlwidgets", + "knitr (>= 1.50)", + "lifecycle", + "magick", + "methods", + "pkgload (>= 1.0.2)", + "quarto", + "rsconnect", + "rstudioapi", + "rticles", + "sass", + "testthat (>= 3.1.3)", + "tools" + ], + "VignetteBuilder": "knitr, quarto", + "Config/Needs/website": "usethis, servr", + "Config/potools/style": "explicit", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", + "Config/testthat/start-first": "build-article, build-quarto-article, build-reference", + "Encoding": "UTF-8", + "SystemRequirements": "pandoc", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut, cre] (ORCID: ), Jay Hesselberth [aut] (ORCID: ), Maëlle Salmon [aut] (ORCID: ), Olivier Roy [aut], Salim Brüggemann [aut] (ORCID: ), Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "pkgload": { + "Package": "pkgload", + "Version": "1.4.1", + "Source": "Repository", + "Title": "Simulate Package Installation and Attach", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Winston\", \"Chang\", role = \"aut\"), person(\"Jim\", \"Hester\", role = \"aut\"), person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"R Core team\", role = \"ctb\", comment = \"Some namespace and vignette code extracted from base R\") )", + "Description": "Simulates the process of installing a package and then attaching it. This is a key part of the 'devtools' package as it allows you to rapidly iterate while developing a package.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-lib/pkgload, https://pkgload.r-lib.org", + "BugReports": "https://github.com/r-lib/pkgload/issues", + "Depends": [ + "R (>= 3.4.0)" + ], + "Imports": [ + "cli (>= 3.3.0)", + "desc", + "fs", + "glue", + "lifecycle", + "methods", + "pkgbuild", + "processx", + "rlang (>= 1.1.1)", + "rprojroot", + "utils" + ], + "Suggests": [ + "bitops", + "jsonlite", + "mathjaxr", + "pak", + "Rcpp", + "remotes", + "rstudioapi", + "testthat (>= 3.2.1.1)", + "usethis", + "withr" + ], + "Config/Needs/website": "tidyverse/tidytemplate, ggplot2", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "TRUE", + "Config/testthat/start-first": "dll", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut], Winston Chang [aut], Jim Hester [aut], Lionel Henry [aut, cre], Posit Software, PBC [cph, fnd], R Core team [ctb] (Some namespace and vignette code extracted from base R)", + "Maintainer": "Lionel Henry ", + "Repository": "CRAN" + }, + "praise": { + "Package": "praise", + "Version": "1.0.0", + "Source": "Repository", + "Title": "Praise Users", + "Author": "Gabor Csardi, Sindre Sorhus", + "Maintainer": "Gabor Csardi ", + "Description": "Build friendly R packages that praise their users if they have done something good, or they just need it to feel better.", + "License": "MIT + file LICENSE", + "LazyData": "true", + "URL": "https://github.com/gaborcsardi/praise", + "BugReports": "https://github.com/gaborcsardi/praise/issues", + "Suggests": [ + "testthat" + ], + "Collate": "'adjective.R' 'adverb.R' 'exclamation.R' 'verb.R' 'rpackage.R' 'package.R'", + "NeedsCompilation": "no", + "Repository": "CRAN" + }, + "prettyunits": { + "Package": "prettyunits", + "Version": "1.2.0", + "Source": "Repository", + "Title": "Pretty, Human Readable Formatting of Quantities", + "Authors@R": "c( person(\"Gabor\", \"Csardi\", email=\"csardi.gabor@gmail.com\", role=c(\"aut\", \"cre\")), person(\"Bill\", \"Denney\", email=\"wdenney@humanpredictions.com\", role=c(\"ctb\"), comment=c(ORCID=\"0000-0002-5759-428X\")), person(\"Christophe\", \"Regouby\", email=\"christophe.regouby@free.fr\", role=c(\"ctb\")) )", + "Description": "Pretty, human readable formatting of quantities. Time intervals: '1337000' -> '15d 11h 23m 20s'. Vague time intervals: '2674000' -> 'about a month ago'. Bytes: '1337' -> '1.34 kB'. Rounding: '99' with 3 significant digits -> '99.0' p-values: '0.00001' -> '<0.0001'. Colors: '#FF0000' -> 'red'. Quantities: '1239437' -> '1.24 M'.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-lib/prettyunits", + "BugReports": "https://github.com/r-lib/prettyunits/issues", + "Depends": [ + "R(>= 2.10)" + ], + "Suggests": [ + "codetools", + "covr", + "testthat" + ], + "RoxygenNote": "7.2.3", + "Encoding": "UTF-8", + "NeedsCompilation": "no", + "Author": "Gabor Csardi [aut, cre], Bill Denney [ctb] (), Christophe Regouby [ctb]", + "Maintainer": "Gabor Csardi ", + "Repository": "CRAN" + }, + "processx": { + "Package": "processx", + "Version": "3.8.6", + "Source": "Repository", + "Title": "Execute and Control System Processes", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\", \"cph\"), comment = c(ORCID = \"0000-0001-7098-9676\")), person(\"Winston\", \"Chang\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"Ascent Digital Services\", role = c(\"cph\", \"fnd\")) )", + "Description": "Tools to run system processes in the background. It can check if a background process is running; wait on a background process to finish; get the exit status of finished processes; kill background processes. It can read the standard output and error of the processes, using non-blocking connections. 'processx' can poll a process for standard output or error, with a timeout. It can also poll several processes at once.", + "License": "MIT + file LICENSE", + "URL": "https://processx.r-lib.org, https://github.com/r-lib/processx", + "BugReports": "https://github.com/r-lib/processx/issues", + "Depends": [ + "R (>= 3.4.0)" + ], + "Imports": [ + "ps (>= 1.2.0)", + "R6", + "utils" + ], + "Suggests": [ + "callr (>= 3.7.3)", + "cli (>= 3.3.0)", + "codetools", + "covr", + "curl", + "debugme", + "parallel", + "rlang (>= 1.0.2)", + "testthat (>= 3.0.0)", + "webfakes", + "withr" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.1.9000", + "NeedsCompilation": "yes", + "Author": "Gábor Csárdi [aut, cre, cph] (), Winston Chang [aut], Posit Software, PBC [cph, fnd], Ascent Digital Services [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "profvis": { + "Package": "profvis", + "Version": "0.4.0", + "Source": "Repository", + "Title": "Interactive Visualizations for Profiling R Code", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\")), person(\"Winston\", \"Chang\", role = \"aut\"), person(\"Javier\", \"Luraschi\", role = \"aut\"), person(\"Timothy\", \"Mastny\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(, \"jQuery Foundation\", role = \"cph\", comment = \"jQuery library\"), person(, \"jQuery contributors\", role = c(\"ctb\", \"cph\"), comment = \"jQuery library; authors listed in inst/htmlwidgets/lib/jquery/AUTHORS.txt\"), person(\"Mike\", \"Bostock\", role = c(\"ctb\", \"cph\"), comment = \"D3 library\"), person(, \"D3 contributors\", role = \"ctb\", comment = \"D3 library\"), person(\"Ivan\", \"Sagalaev\", role = c(\"ctb\", \"cph\"), comment = \"highlight.js library\") )", + "Description": "Interactive visualizations for profiling R code.", + "License": "MIT + file LICENSE", + "URL": "https://profvis.r-lib.org, https://github.com/r-lib/profvis", + "BugReports": "https://github.com/r-lib/profvis/issues", + "Depends": [ + "R (>= 4.0)" + ], + "Imports": [ + "htmlwidgets (>= 0.3.2)", + "rlang (>= 1.1.0)", + "vctrs" + ], + "Suggests": [ + "htmltools", + "knitr", + "rmarkdown", + "shiny", + "testthat (>= 3.0.0)" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate, rmarkdown", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [aut, cre], Winston Chang [aut], Javier Luraschi [aut], Timothy Mastny [aut], Posit Software, PBC [cph, fnd], jQuery Foundation [cph] (jQuery library), jQuery contributors [ctb, cph] (jQuery library; authors listed in inst/htmlwidgets/lib/jquery/AUTHORS.txt), Mike Bostock [ctb, cph] (D3 library), D3 contributors [ctb] (D3 library), Ivan Sagalaev [ctb, cph] (highlight.js library)", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "progress": { + "Package": "progress", + "Version": "1.2.3", + "Source": "Repository", + "Title": "Terminal Progress Bars", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Rich\", \"FitzJohn\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Configurable Progress bars, they may include percentage, elapsed time, and/or the estimated completion time. They work in terminals, in 'Emacs' 'ESS', 'RStudio', 'Windows' 'Rgui' and the 'macOS' 'R.app'. The package also provides a 'C++' 'API', that works with or without 'Rcpp'.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-lib/progress#readme, http://r-lib.github.io/progress/", + "BugReports": "https://github.com/r-lib/progress/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Imports": [ + "crayon", + "hms", + "prettyunits", + "R6" + ], + "Suggests": [ + "Rcpp", + "testthat (>= 3.0.0)", + "withr" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.2.3", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [aut, cre], Rich FitzJohn [aut], Posit Software, PBC [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "promises": { + "Package": "promises", + "Version": "1.5.0", + "Source": "Repository", + "Type": "Package", + "Title": "Abstractions for Promise-Based Asynchronous Programming", + "Authors@R": "c( person(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"), person(\"Barret\", \"Schloerke\", , \"barret@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0001-9986-114X\")), person(\"Winston\", \"Chang\", , \"winston@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0002-1576-2126\")), person(\"Charlie\", \"Gao\", , \"charlie.gao@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0002-0750-061X\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Provides fundamental abstractions for doing asynchronous programming in R using promises. Asynchronous programming is useful for allowing a single R process to orchestrate multiple tasks in the background while also attending to something else. Semantics are similar to 'JavaScript' promises, but with a syntax that is idiomatic R.", + "License": "MIT + file LICENSE", + "URL": "https://rstudio.github.io/promises/, https://github.com/rstudio/promises", + "BugReports": "https://github.com/rstudio/promises/issues", + "Depends": [ + "R (>= 4.1.0)" + ], + "Imports": [ + "fastmap (>= 1.1.0)", + "later", + "lifecycle", + "magrittr (>= 1.5)", + "otel (>= 0.2.0)", + "R6", + "rlang" + ], + "Suggests": [ + "future (>= 1.21.0)", + "knitr", + "mirai", + "otelsdk (>= 0.2.0)", + "purrr", + "Rcpp", + "rmarkdown", + "spelling", + "testthat (>= 3.0.0)", + "vembedr" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "rsconnect, tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/usethis/last-upkeep": "2025-05-27", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.3.3", + "NeedsCompilation": "no", + "Author": "Joe Cheng [aut], Barret Schloerke [aut, cre] (ORCID: ), Winston Chang [aut] (ORCID: ), Charlie Gao [aut] (ORCID: ), Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Barret Schloerke ", + "Repository": "CRAN" + }, + "ps": { + "Package": "ps", + "Version": "1.9.1", + "Source": "Repository", + "Title": "List, Query, Manipulate System Processes", + "Authors@R": "c( person(\"Jay\", \"Loden\", role = \"aut\"), person(\"Dave\", \"Daeschler\", role = \"aut\"), person(\"Giampaolo\", \"Rodola'\", role = \"aut\"), person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "List, query and manipulate all system processes, on 'Windows', 'Linux' and 'macOS'.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-lib/ps, https://ps.r-lib.org/", + "BugReports": "https://github.com/r-lib/ps/issues", + "Depends": [ + "R (>= 3.4)" + ], + "Imports": [ + "utils" + ], + "Suggests": [ + "callr", + "covr", + "curl", + "pillar", + "pingr", + "processx (>= 3.1.0)", + "R6", + "rlang", + "testthat (>= 3.0.0)", + "webfakes", + "withr" + ], + "Biarch": "true", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Jay Loden [aut], Dave Daeschler [aut], Giampaolo Rodola' [aut], Gábor Csárdi [aut, cre], Posit Software, PBC [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "purrr": { + "Package": "purrr", + "Version": "1.2.0", + "Source": "Repository", + "Title": "Functional Programming Tools", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"https://ror.org/03wc8by49\")) )", + "Description": "A complete and consistent functional programming toolkit for R.", + "License": "MIT + file LICENSE", + "URL": "https://purrr.tidyverse.org/, https://github.com/tidyverse/purrr", + "BugReports": "https://github.com/tidyverse/purrr/issues", + "Depends": [ + "R (>= 4.1)" + ], + "Imports": [ + "cli (>= 3.6.1)", + "lifecycle (>= 1.0.3)", + "magrittr (>= 1.5.0)", + "rlang (>= 1.1.1)", + "vctrs (>= 0.6.3)" + ], + "Suggests": [ + "carrier (>= 0.3.0)", + "covr", + "dplyr (>= 0.7.8)", + "httr", + "knitr", + "lubridate", + "mirai (>= 2.5.1)", + "rmarkdown", + "testthat (>= 3.0.0)", + "tibble", + "tidyselect" + ], + "LinkingTo": [ + "cli" + ], + "VignetteBuilder": "knitr", + "Biarch": "true", + "Config/build/compilation-database": "true", + "Config/Needs/website": "tidyverse/tidytemplate, tidyr", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "TRUE", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.3", + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [aut, cre] (ORCID: ), Lionel Henry [aut], Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "quarto": { + "Package": "quarto", + "Version": "1.5.1", + "Source": "Repository", + "Title": "R Interface to 'Quarto' Markdown Publishing System", + "Authors@R": "c( person(\"JJ\", \"Allaire\", , \"jj@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0003-0174-9868\")), person(\"Christophe\", \"Dervieux\", , \"cderv@posit.co\", role = c(\"cre\", \"aut\"), comment = c(ORCID = \"0000-0003-4474-2498\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"Gordon\", \"Woodhull\", role = \"ctb\") )", + "Description": "Convert R Markdown documents and 'Jupyter' notebooks to a variety of output formats using 'Quarto'.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/quarto-dev/quarto-r, https://quarto-dev.github.io/quarto-r/", + "BugReports": "https://github.com/quarto-dev/quarto-r/issues", + "Depends": [ + "R (>= 4.1.0)" + ], + "Imports": [ + "cli", + "fs", + "htmltools", + "jsonlite", + "later", + "lifecycle", + "processx", + "rlang", + "rmarkdown", + "rstudioapi", + "tools", + "utils", + "xfun", + "yaml (>= 2.3.10)" + ], + "Suggests": [ + "bslib", + "callr", + "curl", + "dplyr", + "flextable", + "ggiraph", + "ggplot2", + "gt", + "heatmaply", + "kableExtra", + "knitr", + "palmerpenguins", + "patchwork", + "pkgload", + "plotly", + "rsconnect (>= 0.8.26)", + "testthat (>= 3.1.7)", + "thematic", + "tidyverse", + "tinytable", + "whoami", + "withr" + ], + "VignetteBuilder": "quarto", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "SystemRequirements": "Quarto command line tool ().", + "NeedsCompilation": "no", + "Author": "JJ Allaire [aut] (ORCID: ), Christophe Dervieux [cre, aut] (ORCID: ), Posit Software, PBC [cph, fnd], Gordon Woodhull [ctb]", + "Maintainer": "Christophe Dervieux ", + "Repository": "CRAN" + }, + "ragg": { + "Package": "ragg", + "Version": "1.5.0", + "Source": "Repository", + "Type": "Package", + "Title": "Graphic Devices Based on AGG", + "Authors@R": "c( person(\"Thomas Lin\", \"Pedersen\", , \"thomas.pedersen@posit.co\", role = c(\"cre\", \"aut\"), comment = c(ORCID = \"0000-0002-5147-4711\")), person(\"Maxim\", \"Shemanarev\", role = c(\"aut\", \"cph\"), comment = \"Author of AGG\"), person(\"Tony\", \"Juricic\", , \"tonygeek@yahoo.com\", role = c(\"ctb\", \"cph\"), comment = \"Contributor to AGG\"), person(\"Milan\", \"Marusinec\", , \"milan@marusinec.sk\", role = c(\"ctb\", \"cph\"), comment = \"Contributor to AGG\"), person(\"Spencer\", \"Garrett\", role = \"ctb\", comment = \"Contributor to AGG\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Maintainer": "Thomas Lin Pedersen ", + "Description": "Anti-Grain Geometry (AGG) is a high-quality and high-performance 2D drawing library. The 'ragg' package provides a set of graphic devices based on AGG to use as alternative to the raster devices provided through the 'grDevices' package.", + "License": "MIT + file LICENSE", + "URL": "https://ragg.r-lib.org, https://github.com/r-lib/ragg", + "BugReports": "https://github.com/r-lib/ragg/issues", + "Imports": [ + "systemfonts (>= 1.0.3)", + "textshaping (>= 0.3.0)" + ], + "Suggests": [ + "covr", + "graphics", + "grid", + "testthat (>= 3.0.0)" + ], + "LinkingTo": [ + "systemfonts", + "textshaping" + ], + "Config/build/compilation-database": "true", + "Config/Needs/website": "ggplot2, devoid, magick, bench, tidyr, ggridges, hexbin, sessioninfo, pkgdown, tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/usethis/last-upkeep": "2025-04-25", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "SystemRequirements": "freetype2, libpng, libtiff, libjpeg, libwebp, libwebpmux", + "NeedsCompilation": "yes", + "Author": "Thomas Lin Pedersen [cre, aut] (ORCID: ), Maxim Shemanarev [aut, cph] (Author of AGG), Tony Juricic [ctb, cph] (Contributor to AGG), Milan Marusinec [ctb, cph] (Contributor to AGG), Spencer Garrett [ctb] (Contributor to AGG), Posit Software, PBC [cph, fnd] (ROR: )", + "Repository": "CRAN" + }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.3", + "Source": "Repository", + "Type": "Package", + "Title": "Application Directories: Determine Where to Save Data, Caches, and Logs", + "Authors@R": "c(person(given = \"Hadley\", family = \"Wickham\", role = c(\"trl\", \"cre\", \"cph\"), email = \"hadley@rstudio.com\"), person(given = \"RStudio\", role = \"cph\"), person(given = \"Sridhar\", family = \"Ratnakumar\", role = \"aut\"), person(given = \"Trent\", family = \"Mick\", role = \"aut\"), person(given = \"ActiveState\", role = \"cph\", comment = \"R/appdir.r, R/cache.r, R/data.r, R/log.r translated from appdirs\"), person(given = \"Eddy\", family = \"Petrisor\", role = \"ctb\"), person(given = \"Trevor\", family = \"Davis\", role = c(\"trl\", \"aut\")), person(given = \"Gabor\", family = \"Csardi\", role = \"ctb\"), person(given = \"Gregory\", family = \"Jefferis\", role = \"ctb\"))", + "Description": "An easy way to determine which directories on the users computer you should use to save data, caches and logs. A port of Python's 'Appdirs' () to R.", + "License": "MIT + file LICENSE", + "URL": "https://rappdirs.r-lib.org, https://github.com/r-lib/rappdirs", + "BugReports": "https://github.com/r-lib/rappdirs/issues", + "Depends": [ + "R (>= 3.2)" + ], + "Suggests": [ + "roxygen2", + "testthat (>= 3.0.0)", + "covr", + "withr" + ], + "Copyright": "Original python appdirs module copyright (c) 2010 ActiveState Software Inc. R port copyright Hadley Wickham, RStudio. See file LICENSE for details.", + "Encoding": "UTF-8", + "RoxygenNote": "7.1.1", + "Config/testthat/edition": "3", + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [trl, cre, cph], RStudio [cph], Sridhar Ratnakumar [aut], Trent Mick [aut], ActiveState [cph] (R/appdir.r, R/cache.r, R/data.r, R/log.r translated from appdirs), Eddy Petrisor [ctb], Trevor Davis [trl, aut], Gabor Csardi [ctb], Gregory Jefferis [ctb]", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "rcmdcheck": { + "Package": "rcmdcheck", + "Version": "1.4.0", + "Source": "Repository", + "Title": "Run 'R CMD check' from 'R' and Capture Results", + "Authors@R": "person(given = \"Gábor\", family = \"Csárdi\", role = c(\"cre\", \"aut\"), email = \"csardi.gabor@gmail.com\")", + "Description": "Run 'R CMD check' from 'R' and capture the results of the individual checks. Supports running checks in the background, timeouts, pretty printing and comparing check results.", + "License": "MIT + file LICENSE", + "URL": "https://r-lib.github.io/rcmdcheck/, https://github.com/r-Lib/rcmdcheck#readme", + "BugReports": "https://github.com/r-Lib/rcmdcheck/issues", + "Imports": [ + "callr (>= 3.1.1.9000)", + "cli (>= 3.0.0)", + "curl", + "desc (>= 1.2.0)", + "digest", + "pkgbuild", + "prettyunits", + "R6", + "rprojroot", + "sessioninfo (>= 1.1.1)", + "utils", + "withr", + "xopen" + ], + "Suggests": [ + "covr", + "knitr", + "mockery", + "processx", + "ps", + "rmarkdown", + "svglite", + "testthat", + "webfakes" + ], + "Encoding": "UTF-8", + "RoxygenNote": "7.1.2", + "Config/testthat/edition": "3", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [cre, aut]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "readr": { + "Package": "readr", + "Version": "2.1.5", + "Source": "Repository", + "Title": "Read Rectangular Text Data", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\"), person(\"Jim\", \"Hester\", role = \"aut\"), person(\"Romain\", \"Francois\", role = \"ctb\"), person(\"Jennifer\", \"Bryan\", , \"jenny@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-6983-2759\")), person(\"Shelby\", \"Bearrows\", role = \"ctb\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"https://github.com/mandreyel/\", role = \"cph\", comment = \"mio library\"), person(\"Jukka\", \"Jylänki\", role = c(\"ctb\", \"cph\"), comment = \"grisu3 implementation\"), person(\"Mikkel\", \"Jørgensen\", role = c(\"ctb\", \"cph\"), comment = \"grisu3 implementation\") )", + "Description": "The goal of 'readr' is to provide a fast and friendly way to read rectangular data (like 'csv', 'tsv', and 'fwf'). It is designed to flexibly parse many types of data found in the wild, while still cleanly failing when data unexpectedly changes.", + "License": "MIT + file LICENSE", + "URL": "https://readr.tidyverse.org, https://github.com/tidyverse/readr", + "BugReports": "https://github.com/tidyverse/readr/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Imports": [ + "cli (>= 3.2.0)", + "clipr", + "crayon", + "hms (>= 0.4.1)", + "lifecycle (>= 0.2.0)", + "methods", + "R6", + "rlang", + "tibble", + "utils", + "vroom (>= 1.6.0)" + ], + "Suggests": [ + "covr", + "curl", + "datasets", + "knitr", + "rmarkdown", + "spelling", + "stringi", + "testthat (>= 3.2.0)", + "tzdb (>= 0.1.1)", + "waldo", + "withr", + "xml2" + ], + "LinkingTo": [ + "cpp11", + "tzdb (>= 0.1.1)" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse, tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "false", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.2.3", + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [aut], Jim Hester [aut], Romain Francois [ctb], Jennifer Bryan [aut, cre] (), Shelby Bearrows [ctb], Posit Software, PBC [cph, fnd], https://github.com/mandreyel/ [cph] (mio library), Jukka Jylänki [ctb, cph] (grisu3 implementation), Mikkel Jørgensen [ctb, cph] (grisu3 implementation)", + "Maintainer": "Jennifer Bryan ", + "Repository": "CRAN" + }, + "remotes": { + "Package": "remotes", + "Version": "2.5.0", + "Source": "Repository", + "Title": "R Package Installation from Remote Repositories, Including 'GitHub'", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Jim\", \"Hester\", role = \"aut\"), person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Winston\", \"Chang\", role = \"aut\"), person(\"Martin\", \"Morgan\", role = \"aut\"), person(\"Dan\", \"Tenenbaum\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"Ascent Digital Services\", role = \"cph\") )", + "Description": "Download and install R packages stored in 'GitHub', 'GitLab', 'Bitbucket', 'Bioconductor', or plain 'subversion' or 'git' repositories. This package provides the 'install_*' functions in 'devtools'. Indeed most of the code was copied over from 'devtools'.", + "License": "MIT + file LICENSE", + "URL": "https://remotes.r-lib.org, https://github.com/r-lib/remotes#readme", + "BugReports": "https://github.com/r-lib/remotes/issues", + "Depends": [ + "R (>= 3.0.0)" + ], + "Imports": [ + "methods", + "stats", + "tools", + "utils" + ], + "Suggests": [ + "brew", + "callr", + "codetools", + "covr", + "curl", + "git2r (>= 0.23.0)", + "knitr", + "mockery", + "pingr", + "pkgbuild (>= 1.0.1)", + "rmarkdown", + "rprojroot", + "testthat (>= 3.0.0)", + "webfakes", + "withr" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.2.3", + "SystemRequirements": "Subversion for install_svn, git for install_git", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [aut, cre], Jim Hester [aut], Hadley Wickham [aut], Winston Chang [aut], Martin Morgan [aut], Dan Tenenbaum [aut], Posit Software, PBC [cph, fnd], Ascent Digital Services [cph]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "renv": { + "Package": "renv", + "Version": "1.1.5", + "Source": "Repository", + "Type": "Package", + "Title": "Project Environments", + "Authors@R": "c( person(\"Kevin\", \"Ushey\", role = c(\"aut\", \"cre\"), email = \"kevin@rstudio.com\", comment = c(ORCID = \"0000-0003-2880-7407\")), person(\"Hadley\", \"Wickham\", role = c(\"aut\"), email = \"hadley@rstudio.com\", comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "A dependency management toolkit for R. Using 'renv', you can create and manage project-local R libraries, save the state of these libraries to a 'lockfile', and later restore your library as required. Together, these tools can help make your projects more isolated, portable, and reproducible.", + "License": "MIT + file LICENSE", + "URL": "https://rstudio.github.io/renv/, https://github.com/rstudio/renv", + "BugReports": "https://github.com/rstudio/renv/issues", + "Imports": [ + "utils" + ], + "Suggests": [ + "BiocManager", + "cli", + "compiler", + "covr", + "cpp11", + "devtools", + "generics", + "gitcreds", + "jsonlite", + "jsonvalidate", + "knitr", + "miniUI", + "modules", + "packrat", + "pak", + "R6", + "remotes", + "reticulate", + "rmarkdown", + "rstudioapi", + "shiny", + "testthat", + "uuid", + "waldo", + "yaml", + "webfakes" + ], + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", + "Config/testthat/start-first": "bioconductor,python,install,restore,snapshot,retrieve,remotes", + "NeedsCompilation": "no", + "Author": "Kevin Ushey [aut, cre] (ORCID: ), Hadley Wickham [aut] (ORCID: ), Posit Software, PBC [cph, fnd]", + "Maintainer": "Kevin Ushey ", + "Repository": "CRAN" + }, + "rlang": { + "Package": "rlang", + "Version": "1.1.6", + "Source": "Repository", + "Title": "Functions for Base Types and Core R and 'Tidyverse' Features", + "Description": "A toolbox for working with base types, core R features like the condition system, and core 'Tidyverse' features like tidy evaluation.", + "Authors@R": "c( person(\"Lionel\", \"Henry\", ,\"lionel@posit.co\", c(\"aut\", \"cre\")), person(\"Hadley\", \"Wickham\", ,\"hadley@posit.co\", \"aut\"), person(given = \"mikefc\", email = \"mikefc@coolbutuseless.com\", role = \"cph\", comment = \"Hash implementation based on Mike's xxhashlite\"), person(given = \"Yann\", family = \"Collet\", role = \"cph\", comment = \"Author of the embedded xxHash library\"), person(given = \"Posit, PBC\", role = c(\"cph\", \"fnd\")) )", + "License": "MIT + file LICENSE", + "ByteCompile": "true", + "Biarch": "true", + "Depends": [ + "R (>= 3.5.0)" + ], + "Imports": [ + "utils" + ], + "Suggests": [ + "cli (>= 3.1.0)", + "covr", + "crayon", + "desc", + "fs", + "glue", + "knitr", + "magrittr", + "methods", + "pillar", + "pkgload", + "rmarkdown", + "stats", + "testthat (>= 3.2.0)", + "tibble", + "usethis", + "vctrs (>= 0.2.3)", + "withr" + ], + "Enhances": [ + "winch" + ], + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "URL": "https://rlang.r-lib.org, https://github.com/r-lib/rlang", + "BugReports": "https://github.com/r-lib/rlang/issues", + "Config/build/compilation-database": "true", + "Config/testthat/edition": "3", + "Config/Needs/website": "dplyr, tidyverse/tidytemplate", + "NeedsCompilation": "yes", + "Author": "Lionel Henry [aut, cre], Hadley Wickham [aut], mikefc [cph] (Hash implementation based on Mike's xxhashlite), Yann Collet [cph] (Author of the embedded xxHash library), Posit, PBC [cph, fnd]", + "Maintainer": "Lionel Henry ", + "Repository": "CRAN" + }, + "rmarkdown": { + "Package": "rmarkdown", + "Version": "2.30", + "Source": "Repository", + "Type": "Package", + "Title": "Dynamic Documents for R", + "Authors@R": "c( person(\"JJ\", \"Allaire\", , \"jj@posit.co\", role = \"aut\"), person(\"Yihui\", \"Xie\", , \"xie@yihui.name\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-0645-5666\")), person(\"Christophe\", \"Dervieux\", , \"cderv@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0003-4474-2498\")), person(\"Jonathan\", \"McPherson\", , \"jonathan@posit.co\", role = \"aut\"), person(\"Javier\", \"Luraschi\", role = \"aut\"), person(\"Kevin\", \"Ushey\", , \"kevin@posit.co\", role = \"aut\"), person(\"Aron\", \"Atkins\", , \"aron@posit.co\", role = \"aut\"), person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\"), person(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"), person(\"Winston\", \"Chang\", , \"winston@posit.co\", role = \"aut\"), person(\"Richard\", \"Iannone\", , \"rich@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0003-3925-190X\")), person(\"Andrew\", \"Dunning\", role = \"ctb\", comment = c(ORCID = \"0000-0003-0464-5036\")), person(\"Atsushi\", \"Yasumoto\", role = c(\"ctb\", \"cph\"), comment = c(ORCID = \"0000-0002-8335-495X\", cph = \"Number sections Lua filter\")), person(\"Barret\", \"Schloerke\", role = \"ctb\"), person(\"Carson\", \"Sievert\", role = \"ctb\", comment = c(ORCID = \"0000-0002-4958-2844\")), person(\"Devon\", \"Ryan\", , \"dpryan79@gmail.com\", role = \"ctb\", comment = c(ORCID = \"0000-0002-8549-0971\")), person(\"Frederik\", \"Aust\", , \"frederik.aust@uni-koeln.de\", role = \"ctb\", comment = c(ORCID = \"0000-0003-4900-788X\")), person(\"Jeff\", \"Allen\", , \"jeff@posit.co\", role = \"ctb\"), person(\"JooYoung\", \"Seo\", role = \"ctb\", comment = c(ORCID = \"0000-0002-4064-6012\")), person(\"Malcolm\", \"Barrett\", role = \"ctb\"), person(\"Rob\", \"Hyndman\", , \"Rob.Hyndman@monash.edu\", role = \"ctb\"), person(\"Romain\", \"Lesur\", role = \"ctb\"), person(\"Roy\", \"Storey\", role = \"ctb\"), person(\"Ruben\", \"Arslan\", , \"ruben.arslan@uni-goettingen.de\", role = \"ctb\"), person(\"Sergio\", \"Oller\", role = \"ctb\"), person(given = \"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(, \"jQuery UI contributors\", role = c(\"ctb\", \"cph\"), comment = \"jQuery UI library; authors listed in inst/rmd/h/jqueryui/AUTHORS.txt\"), person(\"Mark\", \"Otto\", role = \"ctb\", comment = \"Bootstrap library\"), person(\"Jacob\", \"Thornton\", role = \"ctb\", comment = \"Bootstrap library\"), person(, \"Bootstrap contributors\", role = \"ctb\", comment = \"Bootstrap library\"), person(, \"Twitter, Inc\", role = \"cph\", comment = \"Bootstrap library\"), person(\"Alexander\", \"Farkas\", role = c(\"ctb\", \"cph\"), comment = \"html5shiv library\"), person(\"Scott\", \"Jehl\", role = c(\"ctb\", \"cph\"), comment = \"Respond.js library\"), person(\"Ivan\", \"Sagalaev\", role = c(\"ctb\", \"cph\"), comment = \"highlight.js library\"), person(\"Greg\", \"Franko\", role = c(\"ctb\", \"cph\"), comment = \"tocify library\"), person(\"John\", \"MacFarlane\", role = c(\"ctb\", \"cph\"), comment = \"Pandoc templates\"), person(, \"Google, Inc.\", role = c(\"ctb\", \"cph\"), comment = \"ioslides library\"), person(\"Dave\", \"Raggett\", role = \"ctb\", comment = \"slidy library\"), person(, \"W3C\", role = \"cph\", comment = \"slidy library\"), person(\"Dave\", \"Gandy\", role = c(\"ctb\", \"cph\"), comment = \"Font-Awesome\"), person(\"Ben\", \"Sperry\", role = \"ctb\", comment = \"Ionicons\"), person(, \"Drifty\", role = \"cph\", comment = \"Ionicons\"), person(\"Aidan\", \"Lister\", role = c(\"ctb\", \"cph\"), comment = \"jQuery StickyTabs\"), person(\"Benct Philip\", \"Jonsson\", role = c(\"ctb\", \"cph\"), comment = \"pagebreak Lua filter\"), person(\"Albert\", \"Krewinkel\", role = c(\"ctb\", \"cph\"), comment = \"pagebreak Lua filter\") )", + "Description": "Convert R Markdown documents into a variety of formats.", + "License": "GPL-3", + "URL": "https://github.com/rstudio/rmarkdown, https://pkgs.rstudio.com/rmarkdown/", + "BugReports": "https://github.com/rstudio/rmarkdown/issues", + "Depends": [ + "R (>= 3.0)" + ], + "Imports": [ + "bslib (>= 0.2.5.1)", + "evaluate (>= 0.13)", + "fontawesome (>= 0.5.0)", + "htmltools (>= 0.5.1)", + "jquerylib", + "jsonlite", + "knitr (>= 1.43)", + "methods", + "tinytex (>= 0.31)", + "tools", + "utils", + "xfun (>= 0.36)", + "yaml (>= 2.1.19)" + ], + "Suggests": [ + "digest", + "dygraphs", + "fs", + "rsconnect", + "downlit (>= 0.4.0)", + "katex (>= 1.4.0)", + "sass (>= 0.4.0)", + "shiny (>= 1.6.0)", + "testthat (>= 3.0.3)", + "tibble", + "vctrs", + "cleanrmd", + "withr (>= 2.4.2)", + "xml2" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "rstudio/quillt, pkgdown", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "SystemRequirements": "pandoc (>= 1.14) - http://pandoc.org", + "NeedsCompilation": "no", + "Author": "JJ Allaire [aut], Yihui Xie [aut, cre] (ORCID: ), Christophe Dervieux [aut] (ORCID: ), Jonathan McPherson [aut], Javier Luraschi [aut], Kevin Ushey [aut], Aron Atkins [aut], Hadley Wickham [aut], Joe Cheng [aut], Winston Chang [aut], Richard Iannone [aut] (ORCID: ), Andrew Dunning [ctb] (ORCID: ), Atsushi Yasumoto [ctb, cph] (ORCID: , cph: Number sections Lua filter), Barret Schloerke [ctb], Carson Sievert [ctb] (ORCID: ), Devon Ryan [ctb] (ORCID: ), Frederik Aust [ctb] (ORCID: ), Jeff Allen [ctb], JooYoung Seo [ctb] (ORCID: ), Malcolm Barrett [ctb], Rob Hyndman [ctb], Romain Lesur [ctb], Roy Storey [ctb], Ruben Arslan [ctb], Sergio Oller [ctb], Posit Software, PBC [cph, fnd], jQuery UI contributors [ctb, cph] (jQuery UI library; authors listed in inst/rmd/h/jqueryui/AUTHORS.txt), Mark Otto [ctb] (Bootstrap library), Jacob Thornton [ctb] (Bootstrap library), Bootstrap contributors [ctb] (Bootstrap library), Twitter, Inc [cph] (Bootstrap library), Alexander Farkas [ctb, cph] (html5shiv library), Scott Jehl [ctb, cph] (Respond.js library), Ivan Sagalaev [ctb, cph] (highlight.js library), Greg Franko [ctb, cph] (tocify library), John MacFarlane [ctb, cph] (Pandoc templates), Google, Inc. [ctb, cph] (ioslides library), Dave Raggett [ctb] (slidy library), W3C [cph] (slidy library), Dave Gandy [ctb, cph] (Font-Awesome), Ben Sperry [ctb] (Ionicons), Drifty [cph] (Ionicons), Aidan Lister [ctb, cph] (jQuery StickyTabs), Benct Philip Jonsson [ctb, cph] (pagebreak Lua filter), Albert Krewinkel [ctb, cph] (pagebreak Lua filter)", + "Maintainer": "Yihui Xie ", + "Repository": "CRAN" + }, + "roxygen2": { + "Package": "roxygen2", + "Version": "7.3.3", + "Source": "Repository", + "Title": "In-Line Documentation for R", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\", \"cph\"), comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Peter\", \"Danenberg\", , \"pcd@roxygen.org\", role = c(\"aut\", \"cph\")), person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = \"aut\"), person(\"Manuel\", \"Eugster\", role = c(\"aut\", \"cph\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Generate your Rd documentation, 'NAMESPACE' file, and collation field using specially formatted comments. Writing documentation in-line with code makes it easier to keep your documentation up-to-date as your requirements change. 'roxygen2' is inspired by the 'Doxygen' system for C++.", + "License": "MIT + file LICENSE", + "URL": "https://roxygen2.r-lib.org/, https://github.com/r-lib/roxygen2", + "BugReports": "https://github.com/r-lib/roxygen2/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Imports": [ + "brew", + "cli (>= 3.3.0)", + "commonmark", + "desc (>= 1.2.0)", + "knitr", + "methods", + "pkgload (>= 1.0.2)", + "purrr (>= 1.0.0)", + "R6 (>= 2.1.2)", + "rlang (>= 1.0.6)", + "stringi", + "stringr (>= 1.0.0)", + "utils", + "withr", + "xml2" + ], + "Suggests": [ + "covr", + "R.methodsS3", + "R.oo", + "rmarkdown (>= 2.16)", + "testthat (>= 3.1.2)", + "yaml" + ], + "LinkingTo": [ + "cpp11" + ], + "VignetteBuilder": "knitr", + "Config/Needs/development": "testthat", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "TRUE", + "Encoding": "UTF-8", + "Language": "en-GB", + "RoxygenNote": "7.3.2.9000", + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [aut, cre, cph] (ORCID: ), Peter Danenberg [aut, cph], Gábor Csárdi [aut], Manuel Eugster [aut, cph], Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "rpart": { + "Package": "rpart", + "Version": "4.1.23", + "Source": "Repository", + "Priority": "recommended", + "Date": "2023-12-04", + "Authors@R": "c(person(\"Terry\", \"Therneau\", role = \"aut\", email = \"therneau@mayo.edu\"), person(\"Beth\", \"Atkinson\", role = c(\"aut\", \"cre\"), email = \"atkinson@mayo.edu\"), person(\"Brian\", \"Ripley\", role = \"trl\", email = \"ripley@stats.ox.ac.uk\", comment = \"producer of the initial R port, maintainer 1999-2017\"))", + "Description": "Recursive partitioning for classification, regression and survival trees. An implementation of most of the functionality of the 1984 book by Breiman, Friedman, Olshen and Stone.", + "Title": "Recursive Partitioning and Regression Trees", + "Depends": [ + "R (>= 2.15.0)", + "graphics", + "stats", + "grDevices" + ], + "Suggests": [ + "survival" + ], + "License": "GPL-2 | GPL-3", + "LazyData": "yes", + "ByteCompile": "yes", + "NeedsCompilation": "yes", + "Author": "Terry Therneau [aut], Beth Atkinson [aut, cre], Brian Ripley [trl] (producer of the initial R port, maintainer 1999-2017)", + "Maintainer": "Beth Atkinson ", + "Repository": "CRAN", + "URL": "https://github.com/bethatkinson/rpart, https://cran.r-project.org/package=rpart", + "BugReports": "https://github.com/bethatkinson/rpart/issues" + }, + "rprojroot": { + "Package": "rprojroot", + "Version": "2.1.1", + "Source": "Repository", + "Title": "Finding Files in Project Subdirectories", + "Authors@R": "person(given = \"Kirill\", family = \"M\\u00fcller\", role = c(\"aut\", \"cre\"), email = \"kirill@cynkra.com\", comment = c(ORCID = \"0000-0002-1416-3412\"))", + "Description": "Robust, reliable and flexible paths to files below a project root. The 'root' of a project is defined as a directory that matches a certain criterion, e.g., it contains a certain regular file.", + "License": "MIT + file LICENSE", + "URL": "https://rprojroot.r-lib.org/, https://github.com/r-lib/rprojroot", + "BugReports": "https://github.com/r-lib/rprojroot/issues", + "Depends": [ + "R (>= 3.0.0)" + ], + "Suggests": [ + "covr", + "knitr", + "lifecycle", + "rlang", + "rmarkdown", + "testthat (>= 3.2.0)", + "withr" + ], + "VignetteBuilder": "knitr", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2.9000", + "Config/autostyle/scope": "line_breaks", + "Config/autostyle/strict": "true", + "Config/Needs/website": "tidyverse/tidytemplate", + "NeedsCompilation": "no", + "Author": "Kirill Müller [aut, cre] (ORCID: )", + "Maintainer": "Kirill Müller ", + "Repository": "CRAN" + }, + "rstudioapi": { + "Package": "rstudioapi", + "Version": "0.17.1", + "Source": "Repository", + "Title": "Safely Access the RStudio API", + "Description": "Access the RStudio API (if available) and provide informative error messages when it's not.", + "Authors@R": "c( person(\"Kevin\", \"Ushey\", role = c(\"aut\", \"cre\"), email = \"kevin@rstudio.com\"), person(\"JJ\", \"Allaire\", role = c(\"aut\"), email = \"jj@posit.co\"), person(\"Hadley\", \"Wickham\", role = c(\"aut\"), email = \"hadley@posit.co\"), person(\"Gary\", \"Ritchie\", role = c(\"aut\"), email = \"gary@posit.co\"), person(family = \"RStudio\", role = \"cph\") )", + "Maintainer": "Kevin Ushey ", + "License": "MIT + file LICENSE", + "URL": "https://rstudio.github.io/rstudioapi/, https://github.com/rstudio/rstudioapi", + "BugReports": "https://github.com/rstudio/rstudioapi/issues", + "RoxygenNote": "7.3.2", + "Suggests": [ + "testthat", + "knitr", + "rmarkdown", + "clipr", + "covr" + ], + "VignetteBuilder": "knitr", + "Encoding": "UTF-8", + "NeedsCompilation": "no", + "Author": "Kevin Ushey [aut, cre], JJ Allaire [aut], Hadley Wickham [aut], Gary Ritchie [aut], RStudio [cph]", + "Repository": "CRAN" + }, + "rversions": { + "Package": "rversions", + "Version": "3.0.0", + "Source": "Repository", + "Title": "Query 'R' Versions, Including 'r-release' and 'r-oldrel'", + "Authors@R": "c(person(given = \"Gábor\", family = \"Csárdi\", role = c(\"aut\", \"cre\"), email = \"csardi.gabor@gmail.com\"), person(given = \"Jeroen\", family = \"Ooms\", role = \"ctb\", email = \"jeroen.ooms@stat.ucla.edu\"), person(given = \"R Consortium\", role = \"fnd\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")))", + "Description": "Query the main 'R' 'SVN' repository to find the versions 'r-release' and 'r-oldrel' refer to, and also all previous 'R' versions and their release dates.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-hub/rversions, https://r-hub.github.io/rversions/", + "BugReports": "https://github.com/r-hub/rversions/issues", + "Imports": [ + "curl" + ], + "Suggests": [ + "pillar", + "testthat (>= 3.0.0)", + "webfakes", + "withr" + ], + "Encoding": "UTF-8", + "RoxygenNote": "7.3.3", + "Config/testthat/edition": "3", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [aut, cre], Jeroen Ooms [ctb], R Consortium [fnd], Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "sass": { + "Package": "sass", + "Version": "0.4.10", + "Source": "Repository", + "Type": "Package", + "Title": "Syntactically Awesome Style Sheets ('Sass')", + "Description": "An 'SCSS' compiler, powered by the 'LibSass' library. With this, R developers can use variables, inheritance, and functions to generate dynamic style sheets. The package uses the 'Sass CSS' extension language, which is stable, powerful, and CSS compatible.", + "Authors@R": "c( person(\"Joe\", \"Cheng\", , \"joe@rstudio.com\", \"aut\"), person(\"Timothy\", \"Mastny\", , \"tim.mastny@gmail.com\", \"aut\"), person(\"Richard\", \"Iannone\", , \"rich@rstudio.com\", \"aut\", comment = c(ORCID = \"0000-0003-3925-190X\")), person(\"Barret\", \"Schloerke\", , \"barret@rstudio.com\", \"aut\", comment = c(ORCID = \"0000-0001-9986-114X\")), person(\"Carson\", \"Sievert\", , \"carson@rstudio.com\", c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-4958-2844\")), person(\"Christophe\", \"Dervieux\", , \"cderv@rstudio.com\", c(\"ctb\"), comment = c(ORCID = \"0000-0003-4474-2498\")), person(family = \"RStudio\", role = c(\"cph\", \"fnd\")), person(family = \"Sass Open Source Foundation\", role = c(\"ctb\", \"cph\"), comment = \"LibSass library\"), person(\"Greter\", \"Marcel\", role = c(\"ctb\", \"cph\"), comment = \"LibSass library\"), person(\"Mifsud\", \"Michael\", role = c(\"ctb\", \"cph\"), comment = \"LibSass library\"), person(\"Hampton\", \"Catlin\", role = c(\"ctb\", \"cph\"), comment = \"LibSass library\"), person(\"Natalie\", \"Weizenbaum\", role = c(\"ctb\", \"cph\"), comment = \"LibSass library\"), person(\"Chris\", \"Eppstein\", role = c(\"ctb\", \"cph\"), comment = \"LibSass library\"), person(\"Adams\", \"Joseph\", role = c(\"ctb\", \"cph\"), comment = \"json.cpp\"), person(\"Trifunovic\", \"Nemanja\", role = c(\"ctb\", \"cph\"), comment = \"utf8.h\") )", + "License": "MIT + file LICENSE", + "URL": "https://rstudio.github.io/sass/, https://github.com/rstudio/sass", + "BugReports": "https://github.com/rstudio/sass/issues", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "SystemRequirements": "GNU make", + "Imports": [ + "fs (>= 1.2.4)", + "rlang (>= 0.4.10)", + "htmltools (>= 0.5.1)", + "R6", + "rappdirs" + ], + "Suggests": [ + "testthat", + "knitr", + "rmarkdown", + "withr", + "shiny", + "curl" + ], + "VignetteBuilder": "knitr", + "Config/testthat/edition": "3", + "NeedsCompilation": "yes", + "Author": "Joe Cheng [aut], Timothy Mastny [aut], Richard Iannone [aut] (), Barret Schloerke [aut] (), Carson Sievert [aut, cre] (), Christophe Dervieux [ctb] (), RStudio [cph, fnd], Sass Open Source Foundation [ctb, cph] (LibSass library), Greter Marcel [ctb, cph] (LibSass library), Mifsud Michael [ctb, cph] (LibSass library), Hampton Catlin [ctb, cph] (LibSass library), Natalie Weizenbaum [ctb, cph] (LibSass library), Chris Eppstein [ctb, cph] (LibSass library), Adams Joseph [ctb, cph] (json.cpp), Trifunovic Nemanja [ctb, cph] (utf8.h)", + "Maintainer": "Carson Sievert ", + "Repository": "CRAN" + }, + "sessioninfo": { + "Package": "sessioninfo", + "Version": "1.2.3", + "Source": "Repository", + "Title": "R Session Information", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = \"cre\"), person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Winston\", \"Chang\", role = \"aut\"), person(\"Robert\", \"Flight\", role = \"aut\"), person(\"Kirill\", \"Müller\", role = \"aut\"), person(\"Jim\", \"Hester\", role = \"aut\"), person(\"R Core team\", role = \"ctb\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Maintainer": "Gábor Csárdi ", + "Description": "Query and print information about the current R session. It is similar to 'utils::sessionInfo()', but includes more information about packages, and where they were installed from.", + "License": "GPL-2", + "URL": "https://github.com/r-lib/sessioninfo#readme, https://sessioninfo.r-lib.org", + "BugReports": "https://github.com/r-lib/sessioninfo/issues", + "Depends": [ + "R (>= 3.4)" + ], + "Imports": [ + "cli (>= 3.1.0)", + "tools", + "utils" + ], + "Suggests": [ + "callr", + "covr", + "gh", + "reticulate", + "rmarkdown", + "testthat (>= 3.2.0)", + "withr" + ], + "Config/Needs/website": "pkgdown, tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [cre], Hadley Wickham [aut], Winston Chang [aut], Robert Flight [aut], Kirill Müller [aut], Jim Hester [aut], R Core team [ctb], Posit Software, PBC [cph, fnd]", + "Repository": "CRAN" + }, + "shiny": { + "Package": "shiny", + "Version": "1.11.1", + "Source": "Repository", + "Type": "Package", + "Title": "Web Application Framework for R", + "Authors@R": "c( person(\"Winston\", \"Chang\", role = c(\"aut\", \"cre\"), email = \"winston@posit.co\", comment = c(ORCID = \"0000-0002-1576-2126\")), person(\"Joe\", \"Cheng\", role = \"aut\", email = \"joe@posit.co\"), person(\"JJ\", \"Allaire\", role = \"aut\", email = \"jj@posit.co\"), person(\"Carson\", \"Sievert\", role = \"aut\", email = \"carson@posit.co\", comment = c(ORCID = \"0000-0002-4958-2844\")), person(\"Barret\", \"Schloerke\", role = \"aut\", email = \"barret@posit.co\", comment = c(ORCID = \"0000-0001-9986-114X\")), person(\"Yihui\", \"Xie\", role = \"aut\", email = \"yihui@posit.co\"), person(\"Jeff\", \"Allen\", role = \"aut\"), person(\"Jonathan\", \"McPherson\", role = \"aut\", email = \"jonathan@posit.co\"), person(\"Alan\", \"Dipert\", role = \"aut\"), person(\"Barbara\", \"Borges\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(family = \"jQuery Foundation\", role = \"cph\", comment = \"jQuery library and jQuery UI library\"), person(family = \"jQuery contributors\", role = c(\"ctb\", \"cph\"), comment = \"jQuery library; authors listed in inst/www/shared/jquery-AUTHORS.txt\"), person(family = \"jQuery UI contributors\", role = c(\"ctb\", \"cph\"), comment = \"jQuery UI library; authors listed in inst/www/shared/jqueryui/AUTHORS.txt\"), person(\"Mark\", \"Otto\", role = \"ctb\", comment = \"Bootstrap library\"), person(\"Jacob\", \"Thornton\", role = \"ctb\", comment = \"Bootstrap library\"), person(family = \"Bootstrap contributors\", role = \"ctb\", comment = \"Bootstrap library\"), person(family = \"Twitter, Inc\", role = \"cph\", comment = \"Bootstrap library\"), person(\"Prem Nawaz\", \"Khan\", role = \"ctb\", comment = \"Bootstrap accessibility plugin\"), person(\"Victor\", \"Tsaran\", role = \"ctb\", comment = \"Bootstrap accessibility plugin\"), person(\"Dennis\", \"Lembree\", role = \"ctb\", comment = \"Bootstrap accessibility plugin\"), person(\"Srinivasu\", \"Chakravarthula\", role = \"ctb\", comment = \"Bootstrap accessibility plugin\"), person(\"Cathy\", \"O'Connor\", role = \"ctb\", comment = \"Bootstrap accessibility plugin\"), person(family = \"PayPal, Inc\", role = \"cph\", comment = \"Bootstrap accessibility plugin\"), person(\"Stefan\", \"Petre\", role = c(\"ctb\", \"cph\"), comment = \"Bootstrap-datepicker library\"), person(\"Andrew\", \"Rowls\", role = c(\"ctb\", \"cph\"), comment = \"Bootstrap-datepicker library\"), person(\"Brian\", \"Reavis\", role = c(\"ctb\", \"cph\"), comment = \"selectize.js library\"), person(\"Salmen\", \"Bejaoui\", role = c(\"ctb\", \"cph\"), comment = \"selectize-plugin-a11y library\"), person(\"Denis\", \"Ineshin\", role = c(\"ctb\", \"cph\"), comment = \"ion.rangeSlider library\"), person(\"Sami\", \"Samhuri\", role = c(\"ctb\", \"cph\"), comment = \"Javascript strftime library\"), person(family = \"SpryMedia Limited\", role = c(\"ctb\", \"cph\"), comment = \"DataTables library\"), person(\"John\", \"Fraser\", role = c(\"ctb\", \"cph\"), comment = \"showdown.js library\"), person(\"John\", \"Gruber\", role = c(\"ctb\", \"cph\"), comment = \"showdown.js library\"), person(\"Ivan\", \"Sagalaev\", role = c(\"ctb\", \"cph\"), comment = \"highlight.js library\"), person(given = \"R Core Team\", role = c(\"ctb\", \"cph\"), comment = \"tar implementation from R\") )", + "Description": "Makes it incredibly easy to build interactive web applications with R. Automatic \"reactive\" binding between inputs and outputs and extensive prebuilt widgets make it possible to build beautiful, responsive, and powerful applications with minimal effort.", + "License": "GPL-3 | file LICENSE", + "Depends": [ + "R (>= 3.0.2)", + "methods" + ], + "Imports": [ + "utils", + "grDevices", + "httpuv (>= 1.5.2)", + "mime (>= 0.3)", + "jsonlite (>= 0.9.16)", + "xtable", + "fontawesome (>= 0.4.0)", + "htmltools (>= 0.5.4)", + "R6 (>= 2.0)", + "sourcetools", + "later (>= 1.0.0)", + "promises (>= 1.3.2)", + "tools", + "cli", + "rlang (>= 0.4.10)", + "fastmap (>= 1.1.1)", + "withr", + "commonmark (>= 1.7)", + "glue (>= 1.3.2)", + "bslib (>= 0.6.0)", + "cachem (>= 1.1.0)", + "lifecycle (>= 0.2.0)" + ], + "Suggests": [ + "coro (>= 1.1.0)", + "datasets", + "DT", + "Cairo (>= 1.5-5)", + "testthat (>= 3.2.1)", + "knitr (>= 1.6)", + "markdown", + "rmarkdown", + "ggplot2", + "reactlog (>= 1.0.0)", + "magrittr", + "yaml", + "mirai", + "future", + "dygraphs", + "ragg", + "showtext", + "sass", + "watcher" + ], + "URL": "https://shiny.posit.co/, https://github.com/rstudio/shiny", + "BugReports": "https://github.com/rstudio/shiny/issues", + "Collate": "'globals.R' 'app-state.R' 'app_template.R' 'bind-cache.R' 'bind-event.R' 'bookmark-state-local.R' 'bookmark-state.R' 'bootstrap-deprecated.R' 'bootstrap-layout.R' 'conditions.R' 'map.R' 'utils.R' 'bootstrap.R' 'busy-indicators-spinners.R' 'busy-indicators.R' 'cache-utils.R' 'deprecated.R' 'devmode.R' 'diagnose.R' 'extended-task.R' 'fileupload.R' 'graph.R' 'reactives.R' 'reactive-domains.R' 'history.R' 'hooks.R' 'html-deps.R' 'image-interact-opts.R' 'image-interact.R' 'imageutils.R' 'input-action.R' 'input-checkbox.R' 'input-checkboxgroup.R' 'input-date.R' 'input-daterange.R' 'input-file.R' 'input-numeric.R' 'input-password.R' 'input-radiobuttons.R' 'input-select.R' 'input-slider.R' 'input-submit.R' 'input-text.R' 'input-textarea.R' 'input-utils.R' 'insert-tab.R' 'insert-ui.R' 'jqueryui.R' 'knitr.R' 'middleware-shiny.R' 'middleware.R' 'timer.R' 'shiny.R' 'mock-session.R' 'modal.R' 'modules.R' 'notifications.R' 'priorityqueue.R' 'progress.R' 'react.R' 'reexports.R' 'render-cached-plot.R' 'render-plot.R' 'render-table.R' 'run-url.R' 'runapp.R' 'serializers.R' 'server-input-handlers.R' 'server-resource-paths.R' 'server.R' 'shiny-options.R' 'shiny-package.R' 'shinyapp.R' 'shinyui.R' 'shinywrappers.R' 'showcase.R' 'snapshot.R' 'staticimports.R' 'tar.R' 'test-export.R' 'test-server.R' 'test.R' 'update-input.R' 'utils-lang.R' 'version_bs_date_picker.R' 'version_ion_range_slider.R' 'version_jquery.R' 'version_jqueryui.R' 'version_selectize.R' 'version_strftime.R' 'viewer.R'", + "RoxygenNote": "7.3.2", + "Encoding": "UTF-8", + "Config/testthat/edition": "3", + "Config/Needs/check": "shinytest2", + "NeedsCompilation": "no", + "Author": "Winston Chang [aut, cre] (ORCID: ), Joe Cheng [aut], JJ Allaire [aut], Carson Sievert [aut] (ORCID: ), Barret Schloerke [aut] (ORCID: ), Yihui Xie [aut], Jeff Allen [aut], Jonathan McPherson [aut], Alan Dipert [aut], Barbara Borges [aut], Posit Software, PBC [cph, fnd], jQuery Foundation [cph] (jQuery library and jQuery UI library), jQuery contributors [ctb, cph] (jQuery library; authors listed in inst/www/shared/jquery-AUTHORS.txt), jQuery UI contributors [ctb, cph] (jQuery UI library; authors listed in inst/www/shared/jqueryui/AUTHORS.txt), Mark Otto [ctb] (Bootstrap library), Jacob Thornton [ctb] (Bootstrap library), Bootstrap contributors [ctb] (Bootstrap library), Twitter, Inc [cph] (Bootstrap library), Prem Nawaz Khan [ctb] (Bootstrap accessibility plugin), Victor Tsaran [ctb] (Bootstrap accessibility plugin), Dennis Lembree [ctb] (Bootstrap accessibility plugin), Srinivasu Chakravarthula [ctb] (Bootstrap accessibility plugin), Cathy O'Connor [ctb] (Bootstrap accessibility plugin), PayPal, Inc [cph] (Bootstrap accessibility plugin), Stefan Petre [ctb, cph] (Bootstrap-datepicker library), Andrew Rowls [ctb, cph] (Bootstrap-datepicker library), Brian Reavis [ctb, cph] (selectize.js library), Salmen Bejaoui [ctb, cph] (selectize-plugin-a11y library), Denis Ineshin [ctb, cph] (ion.rangeSlider library), Sami Samhuri [ctb, cph] (Javascript strftime library), SpryMedia Limited [ctb, cph] (DataTables library), John Fraser [ctb, cph] (showdown.js library), John Gruber [ctb, cph] (showdown.js library), Ivan Sagalaev [ctb, cph] (highlight.js library), R Core Team [ctb, cph] (tar implementation from R)", + "Maintainer": "Winston Chang ", + "Repository": "CRAN" + }, + "sourcetools": { + "Package": "sourcetools", + "Version": "0.1.7-1", + "Source": "Repository", + "Type": "Package", + "Title": "Tools for Reading, Tokenizing and Parsing R Code", + "Author": "Kevin Ushey", + "Maintainer": "Kevin Ushey ", + "Description": "Tools for the reading and tokenization of R code. The 'sourcetools' package provides both an R and C++ interface for the tokenization of R code, and helpers for interacting with the tokenized representation of R code.", + "License": "MIT + file LICENSE", + "Depends": [ + "R (>= 3.0.2)" + ], + "Suggests": [ + "testthat" + ], + "RoxygenNote": "5.0.1", + "BugReports": "https://github.com/kevinushey/sourcetools/issues", + "Encoding": "UTF-8", + "NeedsCompilation": "yes", + "Repository": "CRAN" + }, + "spatial": { + "Package": "spatial", + "Version": "7.3-17", + "Source": "Repository", + "Priority": "recommended", + "Date": "2023-07-20", + "Depends": [ + "R (>= 3.0.0)", + "graphics", + "stats", + "utils" + ], + "Suggests": [ + "MASS" + ], + "Authors@R": "c(person(\"Brian\", \"Ripley\", role = c(\"aut\", \"cre\", \"cph\"), email = \"ripley@stats.ox.ac.uk\"), person(\"Roger\", \"Bivand\", role = \"ctb\"), person(\"William\", \"Venables\", role = \"cph\"))", + "Description": "Functions for kriging and point pattern analysis.", + "Title": "Functions for Kriging and Point Pattern Analysis", + "LazyLoad": "yes", + "ByteCompile": "yes", + "License": "GPL-2 | GPL-3", + "URL": "http://www.stats.ox.ac.uk/pub/MASS4/", + "NeedsCompilation": "yes", + "Author": "Brian Ripley [aut, cre, cph], Roger Bivand [ctb], William Venables [cph]", + "Maintainer": "Brian Ripley ", + "Repository": "CRAN" + }, + "stringi": { + "Package": "stringi", + "Version": "1.8.7", + "Source": "Repository", + "Date": "2025-03-27", + "Title": "Fast and Portable Character String Processing Facilities", + "Description": "A collection of character string/text/natural language processing tools for pattern searching (e.g., with 'Java'-like regular expressions or the 'Unicode' collation algorithm), random string generation, case mapping, string transliteration, concatenation, sorting, padding, wrapping, Unicode normalisation, date-time formatting and parsing, and many more. They are fast, consistent, convenient, and - thanks to 'ICU' (International Components for Unicode) - portable across all locales and platforms. Documentation about 'stringi' is provided via its website at and the paper by Gagolewski (2022, ).", + "URL": "https://stringi.gagolewski.com/, https://github.com/gagolews/stringi, https://icu.unicode.org/", + "BugReports": "https://github.com/gagolews/stringi/issues", + "SystemRequirements": "ICU4C (>= 61, optional)", + "Type": "Package", + "Depends": [ + "R (>= 3.4)" + ], + "Imports": [ + "tools", + "utils", + "stats" + ], + "Biarch": "TRUE", + "License": "file LICENSE", + "Authors@R": "c(person(given = \"Marek\", family = \"Gagolewski\", role = c(\"aut\", \"cre\", \"cph\"), email = \"marek@gagolewski.com\", comment = c(ORCID = \"0000-0003-0637-6028\")), person(given = \"Bartek\", family = \"Tartanus\", role = \"ctb\"), person(\"Unicode, Inc. and others\", role=\"ctb\", comment = \"ICU4C source code, Unicode Character Database\") )", + "RoxygenNote": "7.3.2", + "Encoding": "UTF-8", + "NeedsCompilation": "yes", + "Author": "Marek Gagolewski [aut, cre, cph] (), Bartek Tartanus [ctb], Unicode, Inc. and others [ctb] (ICU4C source code, Unicode Character Database)", + "Maintainer": "Marek Gagolewski ", + "License_is_FOSS": "yes", + "Repository": "CRAN" + }, + "stringr": { + "Package": "stringr", + "Version": "1.6.0", + "Source": "Repository", + "Title": "Simple, Consistent Wrappers for Common String Operations", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\", \"cph\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "A consistent, simple and easy to use set of wrappers around the fantastic 'stringi' package. All function and argument names (and positions) are consistent, all functions deal with \"NA\"'s and zero length vectors in the same way, and the output from one function is easy to feed into the input of another.", + "License": "MIT + file LICENSE", + "URL": "https://stringr.tidyverse.org, https://github.com/tidyverse/stringr", + "BugReports": "https://github.com/tidyverse/stringr/issues", + "Depends": [ + "R (>= 4.1.0)" + ], + "Imports": [ + "cli", + "glue (>= 1.6.1)", + "lifecycle (>= 1.0.3)", + "magrittr", + "rlang (>= 1.0.0)", + "stringi (>= 1.5.3)", + "vctrs (>= 0.4.0)" + ], + "Suggests": [ + "covr", + "dplyr", + "gt", + "htmltools", + "htmlwidgets", + "knitr", + "rmarkdown", + "testthat (>= 3.0.0)", + "tibble" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/potools/style": "explicit", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "LazyData": "true", + "RoxygenNote": "7.3.3", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut, cre, cph], Posit Software, PBC [cph, fnd]", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "survival": { + "Package": "survival", + "Version": "3.7-0", + "Source": "Repository", + "Title": "Survival Analysis", + "Priority": "recommended", + "Date": "2024-06-01", + "Depends": [ + "R (>= 3.5.0)" + ], + "Imports": [ + "graphics", + "Matrix", + "methods", + "splines", + "stats", + "utils" + ], + "LazyData": "Yes", + "LazyDataCompression": "xz", + "ByteCompile": "Yes", + "Authors@R": "c(person(c(\"Terry\", \"M\"), \"Therneau\", email=\"therneau.terry@mayo.edu\", role=c(\"aut\", \"cre\")), person(\"Thomas\", \"Lumley\", role=c(\"ctb\", \"trl\"), comment=\"original S->R port and R maintainer until 2009\"), person(\"Atkinson\", \"Elizabeth\", role=\"ctb\"), person(\"Crowson\", \"Cynthia\", role=\"ctb\"))", + "Description": "Contains the core survival analysis routines, including definition of Surv objects, Kaplan-Meier and Aalen-Johansen (multi-state) curves, Cox models, and parametric accelerated failure time models.", + "License": "LGPL (>= 2)", + "URL": "https://github.com/therneau/survival", + "NeedsCompilation": "yes", + "Author": "Terry M Therneau [aut, cre], Thomas Lumley [ctb, trl] (original S->R port and R maintainer until 2009), Atkinson Elizabeth [ctb], Crowson Cynthia [ctb]", + "Maintainer": "Terry M Therneau ", + "Repository": "CRAN" + }, + "sys": { + "Package": "sys", + "Version": "3.4.3", + "Source": "Repository", + "Type": "Package", + "Title": "Powerful and Reliable Tools for Running System Commands in R", + "Authors@R": "c(person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = \"ctb\"))", + "Description": "Drop-in replacements for the base system2() function with fine control and consistent behavior across platforms. Supports clean interruption, timeout, background tasks, and streaming STDIN / STDOUT / STDERR over binary or text connections. Arguments on Windows automatically get encoded and quoted to work on different locales.", + "License": "MIT + file LICENSE", + "URL": "https://jeroen.r-universe.dev/sys", + "BugReports": "https://github.com/jeroen/sys/issues", + "Encoding": "UTF-8", + "RoxygenNote": "7.1.1", + "Suggests": [ + "unix (>= 1.4)", + "spelling", + "testthat" + ], + "Language": "en-US", + "NeedsCompilation": "yes", + "Author": "Jeroen Ooms [aut, cre] (), Gábor Csárdi [ctb]", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, + "systemfonts": { + "Package": "systemfonts", + "Version": "1.3.1", + "Source": "Repository", + "Type": "Package", + "Title": "System Native Font Finding", + "Authors@R": "c( person(\"Thomas Lin\", \"Pedersen\", , \"thomas.pedersen@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-5147-4711\")), person(\"Jeroen\", \"Ooms\", , \"jeroen@berkeley.edu\", role = \"aut\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Devon\", \"Govett\", role = \"aut\", comment = \"Author of font-manager\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Provides system native access to the font catalogue. As font handling varies between systems it is difficult to correctly locate installed fonts across different operating systems. The 'systemfonts' package provides bindings to the native libraries on Windows, macOS and Linux for finding font files that can then be used further by e.g. graphic devices. The main use is intended to be from compiled code but 'systemfonts' also provides access from R.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-lib/systemfonts, https://systemfonts.r-lib.org", + "BugReports": "https://github.com/r-lib/systemfonts/issues", + "Depends": [ + "R (>= 3.2.0)" + ], + "Imports": [ + "base64enc", + "grid", + "jsonlite", + "lifecycle", + "tools", + "utils" + ], + "Suggests": [ + "covr", + "farver", + "ggplot2", + "graphics", + "knitr", + "ragg", + "rmarkdown", + "svglite", + "testthat (>= 2.1.0)" + ], + "LinkingTo": [ + "cpp11 (>= 0.2.1)" + ], + "VignetteBuilder": "knitr", + "Config/build/compilation-database": "true", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/usethis/last-upkeep": "2025-04-23", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "SystemRequirements": "fontconfig, freetype2", + "NeedsCompilation": "yes", + "Author": "Thomas Lin Pedersen [aut, cre] (ORCID: ), Jeroen Ooms [aut] (ORCID: ), Devon Govett [aut] (Author of font-manager), Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Thomas Lin Pedersen ", + "Repository": "CRAN" + }, + "testthat": { + "Package": "testthat", + "Version": "3.2.3", + "Source": "Repository", + "Title": "Unit Testing for R", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"R Core team\", role = \"ctb\", comment = \"Implementation of utils::recover()\") )", + "Description": "Software testing is important, but, in part because it is frustrating and boring, many of us avoid it. 'testthat' is a testing framework for R that is easy to learn and use, and integrates with your existing 'workflow'.", + "License": "MIT + file LICENSE", + "URL": "https://testthat.r-lib.org, https://github.com/r-lib/testthat", + "BugReports": "https://github.com/r-lib/testthat/issues", + "Depends": [ + "R (>= 3.6.0)" + ], + "Imports": [ + "brio (>= 1.1.3)", + "callr (>= 3.7.3)", + "cli (>= 3.6.1)", + "desc (>= 1.4.2)", + "digest (>= 0.6.33)", + "evaluate (>= 1.0.1)", + "jsonlite (>= 1.8.7)", + "lifecycle (>= 1.0.3)", + "magrittr (>= 2.0.3)", + "methods", + "pkgload (>= 1.3.2.1)", + "praise (>= 1.0.0)", + "processx (>= 3.8.2)", + "ps (>= 1.7.5)", + "R6 (>= 2.5.1)", + "rlang (>= 1.1.1)", + "utils", + "waldo (>= 0.6.0)", + "withr (>= 3.0.2)" + ], + "Suggests": [ + "covr", + "curl (>= 0.9.5)", + "diffviewer (>= 0.1.0)", + "knitr", + "rmarkdown", + "rstudioapi", + "S7", + "shiny", + "usethis", + "vctrs (>= 0.1.0)", + "xml2" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", + "Config/testthat/start-first": "watcher, parallel*", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [aut, cre], Posit Software, PBC [cph, fnd], R Core team [ctb] (Implementation of utils::recover())", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "textshaping": { + "Package": "textshaping", + "Version": "1.0.4", + "Source": "Repository", + "Title": "Bindings to the 'HarfBuzz' and 'Fribidi' Libraries for Text Shaping", + "Authors@R": "c( person(\"Thomas Lin\", \"Pedersen\", , \"thomas.pedersen@posit.co\", role = c(\"cre\", \"aut\"), comment = c(ORCID = \"0000-0002-5147-4711\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Provides access to the text shaping functionality in the 'HarfBuzz' library and the bidirectional algorithm in the 'Fribidi' library. 'textshaping' is a low-level utility package mainly for graphic devices that expands upon the font tool-set provided by the 'systemfonts' package.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-lib/textshaping", + "BugReports": "https://github.com/r-lib/textshaping/issues", + "Depends": [ + "R (>= 3.2.0)" + ], + "Imports": [ + "lifecycle", + "stats", + "stringi", + "systemfonts (>= 1.3.0)", + "utils" + ], + "Suggests": [ + "covr", + "grDevices", + "grid", + "knitr", + "rmarkdown", + "testthat (>= 3.0.0)" + ], + "LinkingTo": [ + "cpp11 (>= 0.2.1)", + "systemfonts (>= 1.0.0)" + ], + "VignetteBuilder": "knitr", + "Config/build/compilation-database": "true", + "Config/testthat/edition": "3", + "Config/usethis/last-upkeep": "2025-04-23", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "SystemRequirements": "freetype2, harfbuzz, fribidi", + "NeedsCompilation": "yes", + "Author": "Thomas Lin Pedersen [cre, aut] (ORCID: ), Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Thomas Lin Pedersen ", + "Repository": "CRAN" + }, + "tibble": { + "Package": "tibble", + "Version": "3.3.0", + "Source": "Repository", + "Title": "Simple Data Frames", + "Authors@R": "c(person(given = \"Kirill\", family = \"M\\u00fcller\", role = c(\"aut\", \"cre\"), email = \"kirill@cynkra.com\", comment = c(ORCID = \"0000-0002-1416-3412\")), person(given = \"Hadley\", family = \"Wickham\", role = \"aut\", email = \"hadley@rstudio.com\"), person(given = \"Romain\", family = \"Francois\", role = \"ctb\", email = \"romain@r-enthusiasts.com\"), person(given = \"Jennifer\", family = \"Bryan\", role = \"ctb\", email = \"jenny@rstudio.com\"), person(given = \"RStudio\", role = c(\"cph\", \"fnd\")))", + "Description": "Provides a 'tbl_df' class (the 'tibble') with stricter checking and better formatting than the traditional data frame.", + "License": "MIT + file LICENSE", + "URL": "https://tibble.tidyverse.org/, https://github.com/tidyverse/tibble", + "BugReports": "https://github.com/tidyverse/tibble/issues", + "Depends": [ + "R (>= 3.4.0)" + ], + "Imports": [ + "cli", + "lifecycle (>= 1.0.0)", + "magrittr", + "methods", + "pillar (>= 1.8.1)", + "pkgconfig", + "rlang (>= 1.0.2)", + "utils", + "vctrs (>= 0.5.0)" + ], + "Suggests": [ + "bench", + "bit64", + "blob", + "brio", + "callr", + "DiagrammeR", + "dplyr", + "evaluate", + "formattable", + "ggplot2", + "here", + "hms", + "htmltools", + "knitr", + "lubridate", + "nycflights13", + "pkgload", + "purrr", + "rmarkdown", + "stringi", + "testthat (>= 3.0.2)", + "tidyr", + "withr" + ], + "VignetteBuilder": "knitr", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2.9000", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", + "Config/testthat/start-first": "vignette-formats, as_tibble, add, invariants", + "Config/autostyle/scope": "line_breaks", + "Config/autostyle/strict": "true", + "Config/autostyle/rmd": "false", + "Config/Needs/website": "tidyverse/tidytemplate", + "NeedsCompilation": "yes", + "Author": "Kirill Müller [aut, cre] (ORCID: ), Hadley Wickham [aut], Romain Francois [ctb], Jennifer Bryan [ctb], RStudio [cph, fnd]", + "Maintainer": "Kirill Müller ", + "Repository": "CRAN" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.1", + "Source": "Repository", + "Title": "Select from a Set of Strings", + "Authors@R": "c( person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = c(\"aut\", \"cre\")), person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "A backend for the selecting functions of the 'tidyverse'. It makes it easy to implement select-like functions in your own packages in a way that is consistent with other 'tidyverse' interfaces for selection.", + "License": "MIT + file LICENSE", + "URL": "https://tidyselect.r-lib.org, https://github.com/r-lib/tidyselect", + "BugReports": "https://github.com/r-lib/tidyselect/issues", + "Depends": [ + "R (>= 3.4)" + ], + "Imports": [ + "cli (>= 3.3.0)", + "glue (>= 1.3.0)", + "lifecycle (>= 1.0.3)", + "rlang (>= 1.0.4)", + "vctrs (>= 0.5.2)", + "withr" + ], + "Suggests": [ + "covr", + "crayon", + "dplyr", + "knitr", + "magrittr", + "rmarkdown", + "stringr", + "testthat (>= 3.1.1)", + "tibble (>= 2.1.3)" + ], + "VignetteBuilder": "knitr", + "ByteCompile": "true", + "Config/testthat/edition": "3", + "Config/Needs/website": "tidyverse/tidytemplate", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.0.9000", + "NeedsCompilation": "yes", + "Author": "Lionel Henry [aut, cre], Hadley Wickham [aut], Posit Software, PBC [cph, fnd]", + "Maintainer": "Lionel Henry ", + "Repository": "CRAN" + }, + "timechange": { + "Package": "timechange", + "Version": "0.3.0", + "Source": "Repository", + "Title": "Efficient Manipulation of Date-Times", + "Authors@R": "c(person(\"Vitalie\", \"Spinu\", email = \"spinuvit@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Google Inc.\", role = c(\"ctb\", \"cph\")))", + "Description": "Efficient routines for manipulation of date-time objects while accounting for time-zones and daylight saving times. The package includes utilities for updating of date-time components (year, month, day etc.), modification of time-zones, rounding of date-times, period addition and subtraction etc. Parts of the 'CCTZ' source code, released under the Apache 2.0 License, are included in this package. See for more details.", + "Depends": [ + "R (>= 3.3)" + ], + "License": "GPL (>= 3)", + "Encoding": "UTF-8", + "LinkingTo": [ + "cpp11 (>= 0.2.7)" + ], + "Suggests": [ + "testthat (>= 0.7.1.99)", + "knitr" + ], + "SystemRequirements": "A system with zoneinfo data (e.g. /usr/share/zoneinfo) as well as a recent-enough C++11 compiler (such as g++-4.8 or later). On Windows the zoneinfo included with R is used.", + "BugReports": "https://github.com/vspinu/timechange/issues", + "URL": "https://github.com/vspinu/timechange/", + "RoxygenNote": "7.2.1", + "NeedsCompilation": "yes", + "Author": "Vitalie Spinu [aut, cre], Google Inc. [ctb, cph]", + "Maintainer": "Vitalie Spinu ", + "Repository": "CRAN" + }, + "tinytex": { + "Package": "tinytex", + "Version": "0.57", + "Source": "Repository", + "Type": "Package", + "Title": "Helper Functions to Install and Maintain TeX Live, and Compile LaTeX Documents", + "Authors@R": "c( person(\"Yihui\", \"Xie\", role = c(\"aut\", \"cre\", \"cph\"), email = \"xie@yihui.name\", comment = c(ORCID = \"0000-0003-0645-5666\")), person(given = \"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"Christophe\", \"Dervieux\", role = \"ctb\", comment = c(ORCID = \"0000-0003-4474-2498\")), person(\"Devon\", \"Ryan\", role = \"ctb\", email = \"dpryan79@gmail.com\", comment = c(ORCID = \"0000-0002-8549-0971\")), person(\"Ethan\", \"Heinzen\", role = \"ctb\"), person(\"Fernando\", \"Cagua\", role = \"ctb\"), person() )", + "Description": "Helper functions to install and maintain the 'LaTeX' distribution named 'TinyTeX' (), a lightweight, cross-platform, portable, and easy-to-maintain version of 'TeX Live'. This package also contains helper functions to compile 'LaTeX' documents, and install missing 'LaTeX' packages automatically.", + "Imports": [ + "xfun (>= 0.48)" + ], + "Suggests": [ + "testit", + "rstudioapi" + ], + "License": "MIT + file LICENSE", + "URL": "https://github.com/rstudio/tinytex", + "BugReports": "https://github.com/rstudio/tinytex/issues", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Yihui Xie [aut, cre, cph] (), Posit Software, PBC [cph, fnd], Christophe Dervieux [ctb] (), Devon Ryan [ctb] (), Ethan Heinzen [ctb], Fernando Cagua [ctb]", + "Maintainer": "Yihui Xie ", + "Repository": "CRAN" + }, + "tzdb": { + "Package": "tzdb", + "Version": "0.5.0", + "Source": "Repository", + "Title": "Time Zone Database Information", + "Authors@R": "c( person(\"Davis\", \"Vaughan\", , \"davis@posit.co\", role = c(\"aut\", \"cre\")), person(\"Howard\", \"Hinnant\", role = \"cph\", comment = \"Author of the included date library\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Provides an up-to-date copy of the Internet Assigned Numbers Authority (IANA) Time Zone Database. It is updated periodically to reflect changes made by political bodies to time zone boundaries, UTC offsets, and daylight saving time rules. Additionally, this package provides a C++ interface for working with the 'date' library. 'date' provides comprehensive support for working with dates and date-times, which this package exposes to make it easier for other R packages to utilize. Headers are provided for calendar specific calculations, along with a limited interface for time zone manipulations.", + "License": "MIT + file LICENSE", + "URL": "https://tzdb.r-lib.org, https://github.com/r-lib/tzdb", + "BugReports": "https://github.com/r-lib/tzdb/issues", + "Depends": [ + "R (>= 4.0.0)" + ], + "Suggests": [ + "covr", + "testthat (>= 3.0.0)" + ], + "LinkingTo": [ + "cpp11 (>= 0.5.2)" + ], + "Biarch": "yes", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "yes", + "Author": "Davis Vaughan [aut, cre], Howard Hinnant [cph] (Author of the included date library), Posit Software, PBC [cph, fnd]", + "Maintainer": "Davis Vaughan ", + "Repository": "CRAN" + }, + "urlchecker": { + "Package": "urlchecker", + "Version": "1.0.1", + "Source": "Repository", + "Title": "Run CRAN URL Checks from Older R Versions", + "Authors@R": "c( person(\"R Core team\", role = \"aut\", comment = \"The code in urltools.R adapted from the tools package\"), person(\"Jim\", \"Hester\", role = \"aut\", comment = c(ORCID = \"0000-0002-2739-7082\")), person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"RStudio\", role = c(\"cph\", \"fnd\")) )", + "Description": "Provide the URL checking tools available in R 4.1+ as a package for earlier versions of R. Also uses concurrent requests so can be much faster than the serial versions.", + "License": "GPL-3", + "URL": "https://github.com/r-lib/urlchecker", + "BugReports": "https://github.com/r-lib/urlchecker/issues", + "Depends": [ + "R (>= 3.3)" + ], + "Imports": [ + "cli", + "curl", + "tools", + "xml2" + ], + "Suggests": [ + "covr" + ], + "Encoding": "UTF-8", + "RoxygenNote": "7.1.2", + "NeedsCompilation": "no", + "Author": "R Core team [aut] (The code in urltools.R adapted from the tools package), Jim Hester [aut] (), Gábor Csárdi [aut, cre], RStudio [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "usethis": { + "Package": "usethis", + "Version": "3.2.1", + "Source": "Repository", + "Title": "Automate Package and Project Setup", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Jennifer\", \"Bryan\", , \"jenny@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-6983-2759\")), person(\"Malcolm\", \"Barrett\", , \"malcolmbarrett@gmail.com\", role = \"aut\", comment = c(ORCID = \"0000-0003-0299-5825\")), person(\"Andy\", \"Teucher\", , \"andy.teucher@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0002-7840-692X\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Automate package and project setup tasks that are otherwise performed manually. This includes setting up unit testing, test coverage, continuous integration, Git, 'GitHub', licenses, 'Rcpp', 'RStudio' projects, and more.", + "License": "MIT + file LICENSE", + "URL": "https://usethis.r-lib.org, https://github.com/r-lib/usethis", + "BugReports": "https://github.com/r-lib/usethis/issues", + "Depends": [ + "R (>= 4.1)" + ], + "Imports": [ + "cli (>= 3.0.1)", + "clipr (>= 0.3.0)", + "crayon", + "curl (>= 2.7)", + "desc (>= 1.4.2)", + "fs (>= 1.3.0)", + "gert (>= 1.4.1)", + "gh (>= 1.2.1)", + "glue (>= 1.3.0)", + "jsonlite", + "lifecycle (>= 1.0.0)", + "purrr", + "rappdirs", + "rlang (>= 1.1.0)", + "rprojroot (>= 2.1.1)", + "rstudioapi", + "stats", + "tools", + "utils", + "whisker", + "withr (>= 2.3.0)", + "yaml" + ], + "Suggests": [ + "covr", + "knitr", + "magick", + "pkgload (>= 1.3.2.1)", + "quarto (>= 1.5.1)", + "rmarkdown", + "roxygen2 (>= 7.1.2)", + "spelling (>= 1.2)", + "testthat (>= 3.1.8)" + ], + "Config/Needs/website": "r-lib/asciicast, tidyverse/tidytemplate, xml2", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "TRUE", + "Config/testthat/start-first": "github-actions, release", + "Config/usethis/last-upkeep": "2025-04-22", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.3.3", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut] (ORCID: ), Jennifer Bryan [aut, cre] (ORCID: ), Malcolm Barrett [aut] (ORCID: ), Andy Teucher [aut] (ORCID: ), Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Jennifer Bryan ", + "Repository": "CRAN" + }, + "utf8": { + "Package": "utf8", + "Version": "1.2.6", + "Source": "Repository", + "Title": "Unicode Text Processing", + "Authors@R": "c(person(given = c(\"Patrick\", \"O.\"), family = \"Perry\", role = c(\"aut\", \"cph\")), person(given = \"Kirill\", family = \"M\\u00fcller\", role = \"cre\", email = \"kirill@cynkra.com\", comment = c(ORCID = \"0000-0002-1416-3412\")), person(given = \"Unicode, Inc.\", role = c(\"cph\", \"dtc\"), comment = \"Unicode Character Database\"))", + "Description": "Process and print 'UTF-8' encoded international text (Unicode). Input, validate, normalize, encode, format, and display.", + "License": "Apache License (== 2.0) | file LICENSE", + "URL": "https://krlmlr.github.io/utf8/, https://github.com/krlmlr/utf8", + "BugReports": "https://github.com/krlmlr/utf8/issues", + "Depends": [ + "R (>= 2.10)" + ], + "Suggests": [ + "cli", + "covr", + "knitr", + "rlang", + "rmarkdown", + "testthat (>= 3.0.0)", + "withr" + ], + "VignetteBuilder": "knitr, rmarkdown", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2.9000", + "NeedsCompilation": "yes", + "Author": "Patrick O. Perry [aut, cph], Kirill Müller [cre] (ORCID: ), Unicode, Inc. [cph, dtc] (Unicode Character Database)", + "Maintainer": "Kirill Müller ", + "Repository": "CRAN" + }, + "vctrs": { + "Package": "vctrs", + "Version": "0.6.5", + "Source": "Repository", + "Title": "Vector Helpers", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\"), person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = \"aut\"), person(\"Davis\", \"Vaughan\", , \"davis@posit.co\", role = c(\"aut\", \"cre\")), person(\"data.table team\", role = \"cph\", comment = \"Radix sort based on data.table's forder() and their contribution to R's order()\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Defines new notions of prototype and size that are used to provide tools for consistent and well-founded type-coercion and size-recycling, and are in turn connected to ideas of type- and size-stability useful for analysing function interfaces.", + "License": "MIT + file LICENSE", + "URL": "https://vctrs.r-lib.org/, https://github.com/r-lib/vctrs", + "BugReports": "https://github.com/r-lib/vctrs/issues", + "Depends": [ + "R (>= 3.5.0)" + ], + "Imports": [ + "cli (>= 3.4.0)", + "glue", + "lifecycle (>= 1.0.3)", + "rlang (>= 1.1.0)" + ], + "Suggests": [ + "bit64", + "covr", + "crayon", + "dplyr (>= 0.8.5)", + "generics", + "knitr", + "pillar (>= 1.4.4)", + "pkgdown (>= 2.0.1)", + "rmarkdown", + "testthat (>= 3.0.0)", + "tibble (>= 3.1.3)", + "waldo (>= 0.2.0)", + "withr", + "xml2", + "zeallot" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "Language": "en-GB", + "RoxygenNote": "7.2.3", + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [aut], Lionel Henry [aut], Davis Vaughan [aut, cre], data.table team [cph] (Radix sort based on data.table's forder() and their contribution to R's order()), Posit Software, PBC [cph, fnd]", + "Maintainer": "Davis Vaughan ", + "Repository": "CRAN" + }, + "vroom": { + "Package": "vroom", + "Version": "1.6.6", + "Source": "Repository", + "Title": "Read and Write Rectangular Text Data Quickly", + "Authors@R": "c( person(\"Jim\", \"Hester\", role = \"aut\", comment = c(ORCID = \"0000-0002-2739-7082\")), person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Jennifer\", \"Bryan\", , \"jenny@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-6983-2759\")), person(\"Shelby\", \"Bearrows\", role = \"ctb\"), person(\"https://github.com/mandreyel/\", role = \"cph\", comment = \"mio library\"), person(\"Jukka\", \"Jylänki\", role = \"cph\", comment = \"grisu3 implementation\"), person(\"Mikkel\", \"Jørgensen\", role = \"cph\", comment = \"grisu3 implementation\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "The goal of 'vroom' is to read and write data (like 'csv', 'tsv' and 'fwf') quickly. When reading it uses a quick initial indexing step, then reads the values lazily , so only the data you actually use needs to be read. The writer formats the data in parallel and writes to disk asynchronously from formatting.", + "License": "MIT + file LICENSE", + "URL": "https://vroom.r-lib.org, https://github.com/tidyverse/vroom", + "BugReports": "https://github.com/tidyverse/vroom/issues", + "Depends": [ + "R (>= 3.6)" + ], + "Imports": [ + "bit64", + "cli (>= 3.2.0)", + "crayon", + "glue", + "hms", + "lifecycle (>= 1.0.3)", + "methods", + "rlang (>= 0.4.2)", + "stats", + "tibble (>= 2.0.0)", + "tidyselect", + "tzdb (>= 0.1.1)", + "vctrs (>= 0.2.0)", + "withr" + ], + "Suggests": [ + "archive", + "bench (>= 1.1.0)", + "covr", + "curl", + "dplyr", + "forcats", + "fs", + "ggplot2", + "knitr", + "patchwork", + "prettyunits", + "purrr", + "rmarkdown", + "rstudioapi", + "scales", + "spelling", + "testthat (>= 2.1.0)", + "tidyr", + "utils", + "waldo", + "xml2" + ], + "LinkingTo": [ + "cpp11 (>= 0.2.0)", + "progress (>= 1.2.3)", + "tzdb (>= 0.1.1)" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "nycflights13, tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "false", + "Copyright": "file COPYRIGHTS", + "Encoding": "UTF-8", + "Language": "en-US", + "RoxygenNote": "7.3.3", + "NeedsCompilation": "yes", + "Author": "Jim Hester [aut] (ORCID: ), Hadley Wickham [aut] (ORCID: ), Jennifer Bryan [aut, cre] (ORCID: ), Shelby Bearrows [ctb], https://github.com/mandreyel/ [cph] (mio library), Jukka Jylänki [cph] (grisu3 implementation), Mikkel Jørgensen [cph] (grisu3 implementation), Posit Software, PBC [cph, fnd]", + "Maintainer": "Jennifer Bryan ", + "Repository": "CRAN" + }, + "waldo": { + "Package": "waldo", + "Version": "0.6.2", + "Source": "Repository", + "Title": "Find Differences Between R Objects", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Compare complex R objects and reveal the key differences. Designed particularly for use in testing packages where being able to quickly isolate key differences makes understanding test failures much easier.", + "License": "MIT + file LICENSE", + "URL": "https://waldo.r-lib.org, https://github.com/r-lib/waldo", + "BugReports": "https://github.com/r-lib/waldo/issues", + "Depends": [ + "R (>= 4.0)" + ], + "Imports": [ + "cli", + "diffobj (>= 0.3.4)", + "glue", + "methods", + "rlang (>= 1.1.0)" + ], + "Suggests": [ + "bit64", + "R6", + "S7", + "testthat (>= 3.0.0)", + "withr", + "xml2" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "NeedsCompilation": "no", + "Author": "Hadley Wickham [aut, cre], Posit Software, PBC [cph, fnd]", + "Maintainer": "Hadley Wickham ", + "Repository": "CRAN" + }, + "whisker": { + "Package": "whisker", + "Version": "0.4.1", + "Source": "Repository", + "Maintainer": "Edwin de Jonge ", + "License": "GPL-3", + "Title": "{{mustache}} for R, Logicless Templating", + "Type": "Package", + "LazyLoad": "yes", + "Author": "Edwin de Jonge", + "Description": "Implements 'Mustache' logicless templating.", + "URL": "https://github.com/edwindj/whisker", + "Suggests": [ + "markdown" + ], + "RoxygenNote": "6.1.1", + "NeedsCompilation": "no", + "Repository": "CRAN" + }, + "withr": { + "Package": "withr", + "Version": "3.0.2", + "Source": "Repository", + "Title": "Run Code 'With' Temporarily Modified Global State", + "Authors@R": "c( person(\"Jim\", \"Hester\", role = \"aut\"), person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = c(\"aut\", \"cre\")), person(\"Kirill\", \"Müller\", , \"krlmlr+r@mailbox.org\", role = \"aut\"), person(\"Kevin\", \"Ushey\", , \"kevinushey@gmail.com\", role = \"aut\"), person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\"), person(\"Winston\", \"Chang\", role = \"aut\"), person(\"Jennifer\", \"Bryan\", role = \"ctb\"), person(\"Richard\", \"Cotton\", role = \"ctb\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "A set of functions to run code 'with' safely and temporarily modified global state. Many of these functions were originally a part of the 'devtools' package, this provides a simple package with limited dependencies to provide access to these functions.", + "License": "MIT + file LICENSE", + "URL": "https://withr.r-lib.org, https://github.com/r-lib/withr#readme", + "BugReports": "https://github.com/r-lib/withr/issues", + "Depends": [ + "R (>= 3.6.0)" + ], + "Imports": [ + "graphics", + "grDevices" + ], + "Suggests": [ + "callr", + "DBI", + "knitr", + "methods", + "rlang", + "rmarkdown (>= 2.12)", + "RSQLite", + "testthat (>= 3.0.0)" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2", + "Collate": "'aaa.R' 'collate.R' 'connection.R' 'db.R' 'defer-exit.R' 'standalone-defer.R' 'defer.R' 'devices.R' 'local_.R' 'with_.R' 'dir.R' 'env.R' 'file.R' 'language.R' 'libpaths.R' 'locale.R' 'makevars.R' 'namespace.R' 'options.R' 'par.R' 'path.R' 'rng.R' 'seed.R' 'wrap.R' 'sink.R' 'tempfile.R' 'timezone.R' 'torture.R' 'utils.R' 'with.R'", + "NeedsCompilation": "no", + "Author": "Jim Hester [aut], Lionel Henry [aut, cre], Kirill Müller [aut], Kevin Ushey [aut], Hadley Wickham [aut], Winston Chang [aut], Jennifer Bryan [ctb], Richard Cotton [ctb], Posit Software, PBC [cph, fnd]", + "Maintainer": "Lionel Henry ", + "Repository": "CRAN" + }, + "xfun": { + "Package": "xfun", + "Version": "0.54", + "Source": "Repository", + "Type": "Package", + "Title": "Supporting Functions for Packages Maintained by 'Yihui Xie'", + "Authors@R": "c( person(\"Yihui\", \"Xie\", role = c(\"aut\", \"cre\", \"cph\"), email = \"xie@yihui.name\", comment = c(ORCID = \"0000-0003-0645-5666\", URL = \"https://yihui.org\")), person(\"Wush\", \"Wu\", role = \"ctb\"), person(\"Daijiang\", \"Li\", role = \"ctb\"), person(\"Xianying\", \"Tan\", role = \"ctb\"), person(\"Salim\", \"Brüggemann\", role = \"ctb\", email = \"salim-b@pm.me\", comment = c(ORCID = \"0000-0002-5329-5987\")), person(\"Christophe\", \"Dervieux\", role = \"ctb\"), person() )", + "Description": "Miscellaneous functions commonly used in other packages maintained by 'Yihui Xie'.", + "Depends": [ + "R (>= 3.2.0)" + ], + "Imports": [ + "grDevices", + "stats", + "tools" + ], + "Suggests": [ + "testit", + "parallel", + "codetools", + "methods", + "rstudioapi", + "tinytex (>= 0.30)", + "mime", + "litedown (>= 0.6)", + "commonmark", + "knitr (>= 1.50)", + "remotes", + "pak", + "curl", + "xml2", + "jsonlite", + "magick", + "yaml", + "data.table", + "qs" + ], + "License": "MIT + file LICENSE", + "URL": "https://github.com/yihui/xfun", + "BugReports": "https://github.com/yihui/xfun/issues", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.3", + "VignetteBuilder": "litedown", + "NeedsCompilation": "yes", + "Author": "Yihui Xie [aut, cre, cph] (ORCID: , URL: https://yihui.org), Wush Wu [ctb], Daijiang Li [ctb], Xianying Tan [ctb], Salim Brüggemann [ctb] (ORCID: ), Christophe Dervieux [ctb]", + "Maintainer": "Yihui Xie ", + "Repository": "CRAN" + }, + "xml2": { + "Package": "xml2", + "Version": "1.4.1", + "Source": "Repository", + "Title": "Parse XML", + "Authors@R": "c( person(\"Hadley\", \"Wickham\", role = \"aut\"), person(\"Jim\", \"Hester\", role = \"aut\"), person(\"Jeroen\", \"Ooms\", email = \"jeroenooms@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"R Foundation\", role = \"ctb\", comment = \"Copy of R-project homepage cached as example\") )", + "Description": "Bindings to 'libxml2' for working with XML data using a simple, consistent interface based on 'XPath' expressions. Also supports XML schema validation; for 'XSLT' transformations see the 'xslt' package.", + "License": "MIT + file LICENSE", + "URL": "https://xml2.r-lib.org, https://r-lib.r-universe.dev/xml2", + "BugReports": "https://github.com/r-lib/xml2/issues", + "Depends": [ + "R (>= 3.6.0)" + ], + "Imports": [ + "cli", + "methods", + "rlang (>= 1.1.0)" + ], + "Suggests": [ + "covr", + "curl", + "httr", + "knitr", + "mockery", + "rmarkdown", + "testthat (>= 3.2.0)", + "xslt" + ], + "VignetteBuilder": "knitr", + "Config/Needs/website": "tidyverse/tidytemplate", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.3", + "SystemRequirements": "libxml2: libxml2-dev (deb), libxml2-devel (rpm)", + "Collate": "'S4.R' 'as_list.R' 'xml_parse.R' 'as_xml_document.R' 'classes.R' 'format.R' 'import-standalone-obj-type.R' 'import-standalone-purrr.R' 'import-standalone-types-check.R' 'init.R' 'nodeset_apply.R' 'paths.R' 'utils.R' 'xml2-package.R' 'xml_attr.R' 'xml_children.R' 'xml_document.R' 'xml_find.R' 'xml_missing.R' 'xml_modify.R' 'xml_name.R' 'xml_namespaces.R' 'xml_node.R' 'xml_nodeset.R' 'xml_path.R' 'xml_schema.R' 'xml_serialize.R' 'xml_structure.R' 'xml_text.R' 'xml_type.R' 'xml_url.R' 'xml_write.R' 'zzz.R'", + "Config/testthat/edition": "3", + "NeedsCompilation": "yes", + "Author": "Hadley Wickham [aut], Jim Hester [aut], Jeroen Ooms [aut, cre], Posit Software, PBC [cph, fnd], R Foundation [ctb] (Copy of R-project homepage cached as example)", + "Maintainer": "Jeroen Ooms ", + "Repository": "CRAN" + }, + "xopen": { + "Package": "xopen", + "Version": "1.0.1", + "Source": "Repository", + "Title": "Open System Files, 'URLs', Anything", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Fathi\", \"Boudra\", role = \"aut\"), person(\"Rex\", \"Dieter\", role = \"aut\"), person(\"Kevin\", \"Krammer\", role = \"aut\"), person(\"Jeremy\", \"White\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", + "Description": "Cross platform solution to open files, directories or 'URLs' with their associated programs.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-lib/xopen#readme, https://r-lib.github.io/xopen/", + "BugReports": "https://github.com/r-lib/xopen/issues", + "Depends": [ + "R (>= 3.1)" + ], + "Imports": [ + "processx" + ], + "Suggests": [ + "ps", + "testthat (>= 3.0.0)" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Encoding": "UTF-8", + "RoxygenNote": "7.2.3", + "NeedsCompilation": "no", + "Author": "Gábor Csárdi [aut, cre], Fathi Boudra [aut], Rex Dieter [aut], Kevin Krammer [aut], Jeremy White [aut], Posit Software, PBC [cph, fnd]", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + }, + "xtable": { + "Package": "xtable", + "Version": "1.8-4", + "Source": "Repository", + "Date": "2019-04-08", + "Title": "Export Tables to LaTeX or HTML", + "Authors@R": "c(person(\"David B.\", \"Dahl\", role=\"aut\"), person(\"David\", \"Scott\", role=c(\"aut\",\"cre\"), email=\"d.scott@auckland.ac.nz\"), person(\"Charles\", \"Roosen\", role=\"aut\"), person(\"Arni\", \"Magnusson\", role=\"aut\"), person(\"Jonathan\", \"Swinton\", role=\"aut\"), person(\"Ajay\", \"Shah\", role=\"ctb\"), person(\"Arne\", \"Henningsen\", role=\"ctb\"), person(\"Benno\", \"Puetz\", role=\"ctb\"), person(\"Bernhard\", \"Pfaff\", role=\"ctb\"), person(\"Claudio\", \"Agostinelli\", role=\"ctb\"), person(\"Claudius\", \"Loehnert\", role=\"ctb\"), person(\"David\", \"Mitchell\", role=\"ctb\"), person(\"David\", \"Whiting\", role=\"ctb\"), person(\"Fernando da\", \"Rosa\", role=\"ctb\"), person(\"Guido\", \"Gay\", role=\"ctb\"), person(\"Guido\", \"Schulz\", role=\"ctb\"), person(\"Ian\", \"Fellows\", role=\"ctb\"), person(\"Jeff\", \"Laake\", role=\"ctb\"), person(\"John\", \"Walker\", role=\"ctb\"), person(\"Jun\", \"Yan\", role=\"ctb\"), person(\"Liviu\", \"Andronic\", role=\"ctb\"), person(\"Markus\", \"Loecher\", role=\"ctb\"), person(\"Martin\", \"Gubri\", role=\"ctb\"), person(\"Matthieu\", \"Stigler\", role=\"ctb\"), person(\"Robert\", \"Castelo\", role=\"ctb\"), person(\"Seth\", \"Falcon\", role=\"ctb\"), person(\"Stefan\", \"Edwards\", role=\"ctb\"), person(\"Sven\", \"Garbade\", role=\"ctb\"), person(\"Uwe\", \"Ligges\", role=\"ctb\"))", + "Maintainer": "David Scott ", + "Imports": [ + "stats", + "utils" + ], + "Suggests": [ + "knitr", + "plm", + "zoo", + "survival" + ], + "VignetteBuilder": "knitr", + "Description": "Coerce data to LaTeX and HTML tables.", + "URL": "http://xtable.r-forge.r-project.org/", + "Depends": [ + "R (>= 2.10.0)" + ], + "License": "GPL (>= 2)", + "Repository": "CRAN", + "NeedsCompilation": "no", + "Author": "David B. Dahl [aut], David Scott [aut, cre], Charles Roosen [aut], Arni Magnusson [aut], Jonathan Swinton [aut], Ajay Shah [ctb], Arne Henningsen [ctb], Benno Puetz [ctb], Bernhard Pfaff [ctb], Claudio Agostinelli [ctb], Claudius Loehnert [ctb], David Mitchell [ctb], David Whiting [ctb], Fernando da Rosa [ctb], Guido Gay [ctb], Guido Schulz [ctb], Ian Fellows [ctb], Jeff Laake [ctb], John Walker [ctb], Jun Yan [ctb], Liviu Andronic [ctb], Markus Loecher [ctb], Martin Gubri [ctb], Matthieu Stigler [ctb], Robert Castelo [ctb], Seth Falcon [ctb], Stefan Edwards [ctb], Sven Garbade [ctb], Uwe Ligges [ctb]" + }, + "yaml": { + "Package": "yaml", + "Version": "2.3.10", + "Source": "Repository", + "Type": "Package", + "Title": "Methods to Convert R Data to YAML and Back", + "Date": "2024-07-22", + "Suggests": [ + "RUnit" + ], + "Author": "Shawn P Garbett [aut], Jeremy Stephens [aut, cre], Kirill Simonov [aut], Yihui Xie [ctb], Zhuoer Dong [ctb], Hadley Wickham [ctb], Jeffrey Horner [ctb], reikoch [ctb], Will Beasley [ctb], Brendan O'Connor [ctb], Gregory R. Warnes [ctb], Michael Quinn [ctb], Zhian N. Kamvar [ctb], Charlie Gao [ctb]", + "Maintainer": "Shawn Garbett ", + "License": "BSD_3_clause + file LICENSE", + "Description": "Implements the 'libyaml' 'YAML' 1.1 parser and emitter () for R.", + "URL": "https://github.com/vubiostat/r-yaml/", + "BugReports": "https://github.com/vubiostat/r-yaml/issues", + "NeedsCompilation": "yes", + "Repository": "CRAN" + }, + "zip": { + "Package": "zip", + "Version": "2.3.3", + "Source": "Repository", + "Title": "Cross-Platform 'zip' Compression", + "Authors@R": "c( person(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")), person(\"Kuba\", \"Podgórski\", role = \"ctb\"), person(\"Rich\", \"Geldreich\", role = \"ctb\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", + "Description": "Cross-Platform 'zip' Compression Library. A replacement for the 'zip' function, that does not require any additional external tools on any platform.", + "License": "MIT + file LICENSE", + "URL": "https://github.com/r-lib/zip, https://r-lib.github.io/zip/", + "BugReports": "https://github.com/r-lib/zip/issues", + "Suggests": [ + "covr", + "pillar", + "processx", + "R6", + "testthat", + "withr" + ], + "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/usethis/last-upkeep": "2025-05-07", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.2.9000", + "NeedsCompilation": "yes", + "Author": "Gábor Csárdi [aut, cre], Kuba Podgórski [ctb], Rich Geldreich [ctb], Posit Software, PBC [cph, fnd] (ROR: )", + "Maintainer": "Gábor Csárdi ", + "Repository": "CRAN" + } + } +} diff --git a/renv/.gitignore b/renv/.gitignore new file mode 100644 index 0000000..0ec0cbb --- /dev/null +++ b/renv/.gitignore @@ -0,0 +1,7 @@ +library/ +local/ +cellar/ +lock/ +python/ +sandbox/ +staging/ diff --git a/renv/activate.R b/renv/activate.R new file mode 100644 index 0000000..2753ae5 --- /dev/null +++ b/renv/activate.R @@ -0,0 +1,1334 @@ + +local({ + + # the requested version of renv + version <- "1.1.5" + attr(version, "sha") <- NULL + + # the project directory + project <- Sys.getenv("RENV_PROJECT") + if (!nzchar(project)) + project <- getwd() + + # use start-up diagnostics if enabled + diagnostics <- Sys.getenv("RENV_STARTUP_DIAGNOSTICS", unset = "FALSE") + if (diagnostics) { + start <- Sys.time() + profile <- tempfile("renv-startup-", fileext = ".Rprof") + utils::Rprof(profile) + on.exit({ + utils::Rprof(NULL) + elapsed <- signif(difftime(Sys.time(), start, units = "auto"), digits = 2L) + writeLines(sprintf("- renv took %s to run the autoloader.", format(elapsed))) + writeLines(sprintf("- Profile: %s", profile)) + print(utils::summaryRprof(profile)) + }, add = TRUE) + } + + # figure out whether the autoloader is enabled + enabled <- local({ + + # first, check config option + override <- getOption("renv.config.autoloader.enabled") + if (!is.null(override)) + return(override) + + # if we're being run in a context where R_LIBS is already set, + # don't load -- presumably we're being run as a sub-process and + # the parent process has already set up library paths for us + rcmd <- Sys.getenv("R_CMD", unset = NA) + rlibs <- Sys.getenv("R_LIBS", unset = NA) + if (!is.na(rlibs) && !is.na(rcmd)) + return(FALSE) + + # next, check environment variables + # prefer using the configuration one in the future + envvars <- c( + "RENV_CONFIG_AUTOLOADER_ENABLED", + "RENV_AUTOLOADER_ENABLED", + "RENV_ACTIVATE_PROJECT" + ) + + for (envvar in envvars) { + envval <- Sys.getenv(envvar, unset = NA) + if (!is.na(envval)) + return(tolower(envval) %in% c("true", "t", "1")) + } + + # enable by default + TRUE + + }) + + # bail if we're not enabled + if (!enabled) { + + # if we're not enabled, we might still need to manually load + # the user profile here + profile <- Sys.getenv("R_PROFILE_USER", unset = "~/.Rprofile") + if (file.exists(profile)) { + cfg <- Sys.getenv("RENV_CONFIG_USER_PROFILE", unset = "TRUE") + if (tolower(cfg) %in% c("true", "t", "1")) + sys.source(profile, envir = globalenv()) + } + + return(FALSE) + + } + + # avoid recursion + if (identical(getOption("renv.autoloader.running"), TRUE)) { + warning("ignoring recursive attempt to run renv autoloader") + return(invisible(TRUE)) + } + + # signal that we're loading renv during R startup + options(renv.autoloader.running = TRUE) + on.exit(options(renv.autoloader.running = NULL), add = TRUE) + + # signal that we've consented to use renv + options(renv.consent = TRUE) + + # load the 'utils' package eagerly -- this ensures that renv shims, which + # mask 'utils' packages, will come first on the search path + library(utils, lib.loc = .Library) + + # unload renv if it's already been loaded + if ("renv" %in% loadedNamespaces()) + unloadNamespace("renv") + + # load bootstrap tools + ansify <- function(text) { + if (renv_ansify_enabled()) + renv_ansify_enhanced(text) + else + renv_ansify_default(text) + } + + renv_ansify_enabled <- function() { + + override <- Sys.getenv("RENV_ANSIFY_ENABLED", unset = NA) + if (!is.na(override)) + return(as.logical(override)) + + pane <- Sys.getenv("RSTUDIO_CHILD_PROCESS_PANE", unset = NA) + if (identical(pane, "build")) + return(FALSE) + + testthat <- Sys.getenv("TESTTHAT", unset = "false") + if (tolower(testthat) %in% "true") + return(FALSE) + + iderun <- Sys.getenv("R_CLI_HAS_HYPERLINK_IDE_RUN", unset = "false") + if (tolower(iderun) %in% "false") + return(FALSE) + + TRUE + + } + + renv_ansify_default <- function(text) { + text + } + + renv_ansify_enhanced <- function(text) { + + # R help links + pattern <- "`\\?(renv::(?:[^`])+)`" + replacement <- "`\033]8;;x-r-help:\\1\a?\\1\033]8;;\a`" + text <- gsub(pattern, replacement, text, perl = TRUE) + + # runnable code + pattern <- "`(renv::(?:[^`])+)`" + replacement <- "`\033]8;;x-r-run:\\1\a\\1\033]8;;\a`" + text <- gsub(pattern, replacement, text, perl = TRUE) + + # return ansified text + text + + } + + renv_ansify_init <- function() { + + envir <- renv_envir_self() + if (renv_ansify_enabled()) + assign("ansify", renv_ansify_enhanced, envir = envir) + else + assign("ansify", renv_ansify_default, envir = envir) + + } + + `%||%` <- function(x, y) { + if (is.null(x)) y else x + } + + catf <- function(fmt, ..., appendLF = TRUE) { + + quiet <- getOption("renv.bootstrap.quiet", default = FALSE) + if (quiet) + return(invisible()) + + msg <- sprintf(fmt, ...) + cat(msg, file = stdout(), sep = if (appendLF) "\n" else "") + + invisible(msg) + + } + + header <- function(label, + ..., + prefix = "#", + suffix = "-", + n = min(getOption("width"), 78)) + { + label <- sprintf(label, ...) + n <- max(n - nchar(label) - nchar(prefix) - 2L, 8L) + if (n <= 0) + return(paste(prefix, label)) + + tail <- paste(rep.int(suffix, n), collapse = "") + paste0(prefix, " ", label, " ", tail) + + } + + heredoc <- function(text, leave = 0) { + + # remove leading, trailing whitespace + trimmed <- gsub("^\\s*\\n|\\n\\s*$", "", text) + + # split into lines + lines <- strsplit(trimmed, "\n", fixed = TRUE)[[1L]] + + # compute common indent + indent <- regexpr("[^[:space:]]", lines) + common <- min(setdiff(indent, -1L)) - leave + text <- paste(substring(lines, common), collapse = "\n") + + # substitute in ANSI links for executable renv code + ansify(text) + + } + + bootstrap <- function(version, library) { + + friendly <- renv_bootstrap_version_friendly(version) + section <- header(sprintf("Bootstrapping renv %s", friendly)) + catf(section) + + # attempt to download renv + catf("- Downloading renv ... ", appendLF = FALSE) + withCallingHandlers( + tarball <- renv_bootstrap_download(version), + error = function(err) { + catf("FAILED") + stop("failed to download:\n", conditionMessage(err)) + } + ) + catf("OK") + on.exit(unlink(tarball), add = TRUE) + + # now attempt to install + catf("- Installing renv ... ", appendLF = FALSE) + withCallingHandlers( + status <- renv_bootstrap_install(version, tarball, library), + error = function(err) { + catf("FAILED") + stop("failed to install:\n", conditionMessage(err)) + } + ) + catf("OK") + + # add empty line to break up bootstrapping from normal output + catf("") + + return(invisible()) + } + + renv_bootstrap_tests_running <- function() { + getOption("renv.tests.running", default = FALSE) + } + + renv_bootstrap_repos <- function() { + + # get CRAN repository + cran <- getOption("renv.repos.cran", "https://cloud.r-project.org") + + # check for repos override + repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA) + if (!is.na(repos)) { + + # check for RSPM; if set, use a fallback repository for renv + rspm <- Sys.getenv("RSPM", unset = NA) + if (identical(rspm, repos)) + repos <- c(RSPM = rspm, CRAN = cran) + + return(repos) + + } + + # check for lockfile repositories + repos <- tryCatch(renv_bootstrap_repos_lockfile(), error = identity) + if (!inherits(repos, "error") && length(repos)) + return(repos) + + # retrieve current repos + repos <- getOption("repos") + + # ensure @CRAN@ entries are resolved + repos[repos == "@CRAN@"] <- cran + + # add in renv.bootstrap.repos if set + default <- c(FALLBACK = "https://cloud.r-project.org") + extra <- getOption("renv.bootstrap.repos", default = default) + repos <- c(repos, extra) + + # remove duplicates that might've snuck in + dupes <- duplicated(repos) | duplicated(names(repos)) + repos[!dupes] + + } + + renv_bootstrap_repos_lockfile <- function() { + + lockpath <- Sys.getenv("RENV_PATHS_LOCKFILE", unset = "renv.lock") + if (!file.exists(lockpath)) + return(NULL) + + lockfile <- tryCatch(renv_json_read(lockpath), error = identity) + if (inherits(lockfile, "error")) { + warning(lockfile) + return(NULL) + } + + repos <- lockfile$R$Repositories + if (length(repos) == 0) + return(NULL) + + keys <- vapply(repos, `[[`, "Name", FUN.VALUE = character(1)) + vals <- vapply(repos, `[[`, "URL", FUN.VALUE = character(1)) + names(vals) <- keys + + return(vals) + + } + + renv_bootstrap_download <- function(version) { + + sha <- attr(version, "sha", exact = TRUE) + + methods <- if (!is.null(sha)) { + + # attempting to bootstrap a development version of renv + c( + function() renv_bootstrap_download_tarball(sha), + function() renv_bootstrap_download_github(sha) + ) + + } else { + + # attempting to bootstrap a release version of renv + c( + function() renv_bootstrap_download_tarball(version), + function() renv_bootstrap_download_cran_latest(version), + function() renv_bootstrap_download_cran_archive(version) + ) + + } + + for (method in methods) { + path <- tryCatch(method(), error = identity) + if (is.character(path) && file.exists(path)) + return(path) + } + + stop("All download methods failed") + + } + + renv_bootstrap_download_impl <- function(url, destfile) { + + mode <- "wb" + + # https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17715 + fixup <- + Sys.info()[["sysname"]] == "Windows" && + substring(url, 1L, 5L) == "file:" + + if (fixup) + mode <- "w+b" + + args <- list( + url = url, + destfile = destfile, + mode = mode, + quiet = TRUE + ) + + if ("headers" %in% names(formals(utils::download.file))) { + headers <- renv_bootstrap_download_custom_headers(url) + if (length(headers) && is.character(headers)) + args$headers <- headers + } + + do.call(utils::download.file, args) + + } + + renv_bootstrap_download_custom_headers <- function(url) { + + headers <- getOption("renv.download.headers") + if (is.null(headers)) + return(character()) + + if (!is.function(headers)) + stopf("'renv.download.headers' is not a function") + + headers <- headers(url) + if (length(headers) == 0L) + return(character()) + + if (is.list(headers)) + headers <- unlist(headers, recursive = FALSE, use.names = TRUE) + + ok <- + is.character(headers) && + is.character(names(headers)) && + all(nzchar(names(headers))) + + if (!ok) + stop("invocation of 'renv.download.headers' did not return a named character vector") + + headers + + } + + renv_bootstrap_download_cran_latest <- function(version) { + + spec <- renv_bootstrap_download_cran_latest_find(version) + type <- spec$type + repos <- spec$repos + + baseurl <- utils::contrib.url(repos = repos, type = type) + ext <- if (identical(type, "source")) + ".tar.gz" + else if (Sys.info()[["sysname"]] == "Windows") + ".zip" + else + ".tgz" + name <- sprintf("renv_%s%s", version, ext) + url <- paste(baseurl, name, sep = "/") + + destfile <- file.path(tempdir(), name) + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (inherits(status, "condition")) + return(FALSE) + + # report success and return + destfile + + } + + renv_bootstrap_download_cran_latest_find <- function(version) { + + # check whether binaries are supported on this system + binary <- + getOption("renv.bootstrap.binary", default = TRUE) && + !identical(.Platform$pkgType, "source") && + !identical(getOption("pkgType"), "source") && + Sys.info()[["sysname"]] %in% c("Darwin", "Windows") + + types <- c(if (binary) "binary", "source") + + # iterate over types + repositories + for (type in types) { + for (repos in renv_bootstrap_repos()) { + + # build arguments for utils::available.packages() call + args <- list(type = type, repos = repos) + + # add custom headers if available -- note that + # utils::available.packages() will pass this to download.file() + if ("headers" %in% names(formals(utils::download.file))) { + headers <- renv_bootstrap_download_custom_headers(repos) + if (length(headers) && is.character(headers)) + args$headers <- headers + } + + # retrieve package database + db <- tryCatch( + as.data.frame( + do.call(utils::available.packages, args), + stringsAsFactors = FALSE + ), + error = identity + ) + + if (inherits(db, "error")) + next + + # check for compatible entry + entry <- db[db$Package %in% "renv" & db$Version %in% version, ] + if (nrow(entry) == 0) + next + + # found it; return spec to caller + spec <- list(entry = entry, type = type, repos = repos) + return(spec) + + } + } + + # if we got here, we failed to find renv + fmt <- "renv %s is not available from your declared package repositories" + stop(sprintf(fmt, version)) + + } + + renv_bootstrap_download_cran_archive <- function(version) { + + name <- sprintf("renv_%s.tar.gz", version) + repos <- renv_bootstrap_repos() + urls <- file.path(repos, "src/contrib/Archive/renv", name) + destfile <- file.path(tempdir(), name) + + for (url in urls) { + + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (identical(status, 0L)) + return(destfile) + + } + + return(FALSE) + + } + + renv_bootstrap_download_tarball <- function(version) { + + # if the user has provided the path to a tarball via + # an environment variable, then use it + tarball <- Sys.getenv("RENV_BOOTSTRAP_TARBALL", unset = NA) + if (is.na(tarball)) + return() + + # allow directories + if (dir.exists(tarball)) { + name <- sprintf("renv_%s.tar.gz", version) + tarball <- file.path(tarball, name) + } + + # bail if it doesn't exist + if (!file.exists(tarball)) { + + # let the user know we weren't able to honour their request + fmt <- "- RENV_BOOTSTRAP_TARBALL is set (%s) but does not exist." + msg <- sprintf(fmt, tarball) + warning(msg) + + # bail + return() + + } + + catf("- Using local tarball '%s'.", tarball) + tarball + + } + + renv_bootstrap_github_token <- function() { + for (envvar in c("GITHUB_TOKEN", "GITHUB_PAT", "GH_TOKEN")) { + envval <- Sys.getenv(envvar, unset = NA) + if (!is.na(envval)) + return(envval) + } + } + + renv_bootstrap_download_github <- function(version) { + + enabled <- Sys.getenv("RENV_BOOTSTRAP_FROM_GITHUB", unset = "TRUE") + if (!identical(enabled, "TRUE")) + return(FALSE) + + # prepare download options + token <- renv_bootstrap_github_token() + if (is.null(token)) + token <- "" + + if (nzchar(Sys.which("curl")) && nzchar(token)) { + fmt <- "--location --fail --header \"Authorization: token %s\"" + extra <- sprintf(fmt, token) + saved <- options("download.file.method", "download.file.extra") + options(download.file.method = "curl", download.file.extra = extra) + on.exit(do.call(base::options, saved), add = TRUE) + } else if (nzchar(Sys.which("wget")) && nzchar(token)) { + fmt <- "--header=\"Authorization: token %s\"" + extra <- sprintf(fmt, token) + saved <- options("download.file.method", "download.file.extra") + options(download.file.method = "wget", download.file.extra = extra) + on.exit(do.call(base::options, saved), add = TRUE) + } + + url <- file.path("https://api.github.com/repos/rstudio/renv/tarball", version) + name <- sprintf("renv_%s.tar.gz", version) + destfile <- file.path(tempdir(), name) + + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (!identical(status, 0L)) + return(FALSE) + + renv_bootstrap_download_augment(destfile) + + return(destfile) + + } + + # Add Sha to DESCRIPTION. This is stop gap until #890, after which we + # can use renv::install() to fully capture metadata. + renv_bootstrap_download_augment <- function(destfile) { + sha <- renv_bootstrap_git_extract_sha1_tar(destfile) + if (is.null(sha)) { + return() + } + + # Untar + tempdir <- tempfile("renv-github-") + on.exit(unlink(tempdir, recursive = TRUE), add = TRUE) + untar(destfile, exdir = tempdir) + pkgdir <- dir(tempdir, full.names = TRUE)[[1]] + + # Modify description + desc_path <- file.path(pkgdir, "DESCRIPTION") + desc_lines <- readLines(desc_path) + remotes_fields <- c( + "RemoteType: github", + "RemoteHost: api.github.com", + "RemoteRepo: renv", + "RemoteUsername: rstudio", + "RemotePkgRef: rstudio/renv", + paste("RemoteRef: ", sha), + paste("RemoteSha: ", sha) + ) + writeLines(c(desc_lines[desc_lines != ""], remotes_fields), con = desc_path) + + # Re-tar + local({ + old <- setwd(tempdir) + on.exit(setwd(old), add = TRUE) + + tar(destfile, compression = "gzip") + }) + invisible() + } + + # Extract the commit hash from a git archive. Git archives include the SHA1 + # hash as the comment field of the tarball pax extended header + # (see https://www.kernel.org/pub/software/scm/git/docs/git-archive.html) + # For GitHub archives this should be the first header after the default one + # (512 byte) header. + renv_bootstrap_git_extract_sha1_tar <- function(bundle) { + + # open the bundle for reading + # We use gzcon for everything because (from ?gzcon) + # > Reading from a connection which does not supply a 'gzip' magic + # > header is equivalent to reading from the original connection + conn <- gzcon(file(bundle, open = "rb", raw = TRUE)) + on.exit(close(conn)) + + # The default pax header is 512 bytes long and the first pax extended header + # with the comment should be 51 bytes long + # `52 comment=` (11 chars) + 40 byte SHA1 hash + len <- 0x200 + 0x33 + res <- rawToChar(readBin(conn, "raw", n = len)[0x201:len]) + + if (grepl("^52 comment=", res)) { + sub("52 comment=", "", res) + } else { + NULL + } + } + + renv_bootstrap_install <- function(version, tarball, library) { + + # attempt to install it into project library + dir.create(library, showWarnings = FALSE, recursive = TRUE) + output <- renv_bootstrap_install_impl(library, tarball) + + # check for successful install + status <- attr(output, "status") + if (is.null(status) || identical(status, 0L)) + return(status) + + # an error occurred; report it + header <- "installation of renv failed" + lines <- paste(rep.int("=", nchar(header)), collapse = "") + text <- paste(c(header, lines, output), collapse = "\n") + stop(text) + + } + + renv_bootstrap_install_impl <- function(library, tarball) { + + # invoke using system2 so we can capture and report output + bin <- R.home("bin") + exe <- if (Sys.info()[["sysname"]] == "Windows") "R.exe" else "R" + R <- file.path(bin, exe) + + args <- c( + "--vanilla", "CMD", "INSTALL", "--no-multiarch", + "-l", shQuote(path.expand(library)), + shQuote(path.expand(tarball)) + ) + + system2(R, args, stdout = TRUE, stderr = TRUE) + + } + + renv_bootstrap_platform_prefix_default <- function() { + + # read version component + version <- Sys.getenv("RENV_PATHS_VERSION", unset = "R-%v") + + # expand placeholders + placeholders <- list( + list("%v", format(getRversion()[1, 1:2])), + list("%V", format(getRversion()[1, 1:3])) + ) + + for (placeholder in placeholders) + version <- gsub(placeholder[[1L]], placeholder[[2L]], version, fixed = TRUE) + + # include SVN revision for development versions of R + # (to avoid sharing platform-specific artefacts with released versions of R) + devel <- + identical(R.version[["status"]], "Under development (unstable)") || + identical(R.version[["nickname"]], "Unsuffered Consequences") + + if (devel) + version <- paste(version, R.version[["svn rev"]], sep = "-r") + + version + + } + + renv_bootstrap_platform_prefix <- function() { + + # construct version prefix + version <- renv_bootstrap_platform_prefix_default() + + # build list of path components + components <- c(version, R.version$platform) + + # include prefix if provided by user + prefix <- renv_bootstrap_platform_prefix_impl() + if (!is.na(prefix) && nzchar(prefix)) + components <- c(prefix, components) + + # build prefix + paste(components, collapse = "/") + + } + + renv_bootstrap_platform_prefix_impl <- function() { + + # if an explicit prefix has been supplied, use it + prefix <- Sys.getenv("RENV_PATHS_PREFIX", unset = NA) + if (!is.na(prefix)) + return(prefix) + + # if the user has requested an automatic prefix, generate it + auto <- Sys.getenv("RENV_PATHS_PREFIX_AUTO", unset = NA) + if (is.na(auto) && getRversion() >= "4.4.0") + auto <- "TRUE" + + if (auto %in% c("TRUE", "True", "true", "1")) + return(renv_bootstrap_platform_prefix_auto()) + + # empty string on failure + "" + + } + + renv_bootstrap_platform_prefix_auto <- function() { + + prefix <- tryCatch(renv_bootstrap_platform_os(), error = identity) + if (inherits(prefix, "error") || prefix %in% "unknown") { + + msg <- paste( + "failed to infer current operating system", + "please file a bug report at https://github.com/rstudio/renv/issues", + sep = "; " + ) + + warning(msg) + + } + + prefix + + } + + renv_bootstrap_platform_os <- function() { + + sysinfo <- Sys.info() + sysname <- sysinfo[["sysname"]] + + # handle Windows + macOS up front + if (sysname == "Windows") + return("windows") + else if (sysname == "Darwin") + return("macos") + + # check for os-release files + for (file in c("/etc/os-release", "/usr/lib/os-release")) + if (file.exists(file)) + return(renv_bootstrap_platform_os_via_os_release(file, sysinfo)) + + # check for redhat-release files + if (file.exists("/etc/redhat-release")) + return(renv_bootstrap_platform_os_via_redhat_release()) + + "unknown" + + } + + renv_bootstrap_platform_os_via_os_release <- function(file, sysinfo) { + + # read /etc/os-release + release <- utils::read.table( + file = file, + sep = "=", + quote = c("\"", "'"), + col.names = c("Key", "Value"), + comment.char = "#", + stringsAsFactors = FALSE + ) + + vars <- as.list(release$Value) + names(vars) <- release$Key + + # get os name + os <- tolower(sysinfo[["sysname"]]) + + # read id + id <- "unknown" + for (field in c("ID", "ID_LIKE")) { + if (field %in% names(vars) && nzchar(vars[[field]])) { + id <- vars[[field]] + break + } + } + + # read version + version <- "unknown" + for (field in c("UBUNTU_CODENAME", "VERSION_CODENAME", "VERSION_ID", "BUILD_ID")) { + if (field %in% names(vars) && nzchar(vars[[field]])) { + version <- vars[[field]] + break + } + } + + # join together + paste(c(os, id, version), collapse = "-") + + } + + renv_bootstrap_platform_os_via_redhat_release <- function() { + + # read /etc/redhat-release + contents <- readLines("/etc/redhat-release", warn = FALSE) + + # infer id + id <- if (grepl("centos", contents, ignore.case = TRUE)) + "centos" + else if (grepl("redhat", contents, ignore.case = TRUE)) + "redhat" + else + "unknown" + + # try to find a version component (very hacky) + version <- "unknown" + + parts <- strsplit(contents, "[[:space:]]")[[1L]] + for (part in parts) { + + nv <- tryCatch(numeric_version(part), error = identity) + if (inherits(nv, "error")) + next + + version <- nv[1, 1] + break + + } + + paste(c("linux", id, version), collapse = "-") + + } + + renv_bootstrap_library_root_name <- function(project) { + + # use project name as-is if requested + asis <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT_ASIS", unset = "FALSE") + if (asis) + return(basename(project)) + + # otherwise, disambiguate based on project's path + id <- substring(renv_bootstrap_hash_text(project), 1L, 8L) + paste(basename(project), id, sep = "-") + + } + + renv_bootstrap_library_root <- function(project) { + + prefix <- renv_bootstrap_profile_prefix() + + path <- Sys.getenv("RENV_PATHS_LIBRARY", unset = NA) + if (!is.na(path)) + return(paste(c(path, prefix), collapse = "/")) + + path <- renv_bootstrap_library_root_impl(project) + if (!is.null(path)) { + name <- renv_bootstrap_library_root_name(project) + return(paste(c(path, prefix, name), collapse = "/")) + } + + renv_bootstrap_paths_renv("library", project = project) + + } + + renv_bootstrap_library_root_impl <- function(project) { + + root <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA) + if (!is.na(root)) + return(root) + + type <- renv_bootstrap_project_type(project) + if (identical(type, "package")) { + userdir <- renv_bootstrap_user_dir() + return(file.path(userdir, "library")) + } + + } + + renv_bootstrap_validate_version <- function(version, description = NULL) { + + # resolve description file + # + # avoid passing lib.loc to `packageDescription()` below, since R will + # use the loaded version of the package by default anyhow. note that + # this function should only be called after 'renv' is loaded + # https://github.com/rstudio/renv/issues/1625 + description <- description %||% packageDescription("renv") + + # check whether requested version 'version' matches loaded version of renv + sha <- attr(version, "sha", exact = TRUE) + valid <- if (!is.null(sha)) + renv_bootstrap_validate_version_dev(sha, description) + else + renv_bootstrap_validate_version_release(version, description) + + if (valid) + return(TRUE) + + # the loaded version of renv doesn't match the requested version; + # give the user instructions on how to proceed + dev <- identical(description[["RemoteType"]], "github") + remote <- if (dev) + paste("rstudio/renv", description[["RemoteSha"]], sep = "@") + else + paste("renv", description[["Version"]], sep = "@") + + # display both loaded version + sha if available + friendly <- renv_bootstrap_version_friendly( + version = description[["Version"]], + sha = if (dev) description[["RemoteSha"]] + ) + + fmt <- heredoc(" + renv %1$s was loaded from project library, but this project is configured to use renv %2$s. + - Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile. + - Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library. + ") + catf(fmt, friendly, renv_bootstrap_version_friendly(version), remote) + + FALSE + + } + + renv_bootstrap_validate_version_dev <- function(version, description) { + + expected <- description[["RemoteSha"]] + if (!is.character(expected)) + return(FALSE) + + pattern <- sprintf("^\\Q%s\\E", version) + grepl(pattern, expected, perl = TRUE) + + } + + renv_bootstrap_validate_version_release <- function(version, description) { + expected <- description[["Version"]] + is.character(expected) && identical(expected, version) + } + + renv_bootstrap_hash_text <- function(text) { + + hashfile <- tempfile("renv-hash-") + on.exit(unlink(hashfile), add = TRUE) + + writeLines(text, con = hashfile) + tools::md5sum(hashfile) + + } + + renv_bootstrap_load <- function(project, libpath, version) { + + # try to load renv from the project library + if (!requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) + return(FALSE) + + # warn if the version of renv loaded does not match + renv_bootstrap_validate_version(version) + + # execute renv load hooks, if any + hooks <- getHook("renv::autoload") + for (hook in hooks) + if (is.function(hook)) + tryCatch(hook(), error = warnify) + + # load the project + renv::load(project) + + TRUE + + } + + renv_bootstrap_profile_load <- function(project) { + + # if RENV_PROFILE is already set, just use that + profile <- Sys.getenv("RENV_PROFILE", unset = NA) + if (!is.na(profile) && nzchar(profile)) + return(profile) + + # check for a profile file (nothing to do if it doesn't exist) + path <- renv_bootstrap_paths_renv("profile", profile = FALSE, project = project) + if (!file.exists(path)) + return(NULL) + + # read the profile, and set it if it exists + contents <- readLines(path, warn = FALSE) + if (length(contents) == 0L) + return(NULL) + + # set RENV_PROFILE + profile <- contents[[1L]] + if (!profile %in% c("", "default")) + Sys.setenv(RENV_PROFILE = profile) + + profile + + } + + renv_bootstrap_profile_prefix <- function() { + profile <- renv_bootstrap_profile_get() + if (!is.null(profile)) + return(file.path("profiles", profile, "renv")) + } + + renv_bootstrap_profile_get <- function() { + profile <- Sys.getenv("RENV_PROFILE", unset = "") + renv_bootstrap_profile_normalize(profile) + } + + renv_bootstrap_profile_set <- function(profile) { + profile <- renv_bootstrap_profile_normalize(profile) + if (is.null(profile)) + Sys.unsetenv("RENV_PROFILE") + else + Sys.setenv(RENV_PROFILE = profile) + } + + renv_bootstrap_profile_normalize <- function(profile) { + + if (is.null(profile) || profile %in% c("", "default")) + return(NULL) + + profile + + } + + renv_bootstrap_path_absolute <- function(path) { + + substr(path, 1L, 1L) %in% c("~", "/", "\\") || ( + substr(path, 1L, 1L) %in% c(letters, LETTERS) && + substr(path, 2L, 3L) %in% c(":/", ":\\") + ) + + } + + renv_bootstrap_paths_renv <- function(..., profile = TRUE, project = NULL) { + renv <- Sys.getenv("RENV_PATHS_RENV", unset = "renv") + root <- if (renv_bootstrap_path_absolute(renv)) NULL else project + prefix <- if (profile) renv_bootstrap_profile_prefix() + components <- c(root, renv, prefix, ...) + paste(components, collapse = "/") + } + + renv_bootstrap_project_type <- function(path) { + + descpath <- file.path(path, "DESCRIPTION") + if (!file.exists(descpath)) + return("unknown") + + desc <- tryCatch( + read.dcf(descpath, all = TRUE), + error = identity + ) + + if (inherits(desc, "error")) + return("unknown") + + type <- desc$Type + if (!is.null(type)) + return(tolower(type)) + + package <- desc$Package + if (!is.null(package)) + return("package") + + "unknown" + + } + + renv_bootstrap_user_dir <- function() { + dir <- renv_bootstrap_user_dir_impl() + path.expand(chartr("\\", "/", dir)) + } + + renv_bootstrap_user_dir_impl <- function() { + + # use local override if set + override <- getOption("renv.userdir.override") + if (!is.null(override)) + return(override) + + # use R_user_dir if available + tools <- asNamespace("tools") + if (is.function(tools$R_user_dir)) + return(tools$R_user_dir("renv", "cache")) + + # try using our own backfill for older versions of R + envvars <- c("R_USER_CACHE_DIR", "XDG_CACHE_HOME") + for (envvar in envvars) { + root <- Sys.getenv(envvar, unset = NA) + if (!is.na(root)) + return(file.path(root, "R/renv")) + } + + # use platform-specific default fallbacks + if (Sys.info()[["sysname"]] == "Windows") + file.path(Sys.getenv("LOCALAPPDATA"), "R/cache/R/renv") + else if (Sys.info()[["sysname"]] == "Darwin") + "~/Library/Caches/org.R-project.R/R/renv" + else + "~/.cache/R/renv" + + } + + renv_bootstrap_version_friendly <- function(version, shafmt = NULL, sha = NULL) { + sha <- sha %||% attr(version, "sha", exact = TRUE) + parts <- c(version, sprintf(shafmt %||% " [sha: %s]", substring(sha, 1L, 7L))) + paste(parts, collapse = "") + } + + renv_bootstrap_exec <- function(project, libpath, version) { + if (!renv_bootstrap_load(project, libpath, version)) + renv_bootstrap_run(project, libpath, version) + } + + renv_bootstrap_run <- function(project, libpath, version) { + + # perform bootstrap + bootstrap(version, libpath) + + # exit early if we're just testing bootstrap + if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA))) + return(TRUE) + + # try again to load + if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { + return(renv::load(project = project)) + } + + # failed to download or load renv; warn the user + msg <- c( + "Failed to find an renv installation: the project will not be loaded.", + "Use `renv::activate()` to re-initialize the project." + ) + + warning(paste(msg, collapse = "\n"), call. = FALSE) + + } + + renv_json_read <- function(file = NULL, text = NULL) { + + jlerr <- NULL + + # if jsonlite is loaded, use that instead + if ("jsonlite" %in% loadedNamespaces()) { + + json <- tryCatch(renv_json_read_jsonlite(file, text), error = identity) + if (!inherits(json, "error")) + return(json) + + jlerr <- json + + } + + # otherwise, fall back to the default JSON reader + json <- tryCatch(renv_json_read_default(file, text), error = identity) + if (!inherits(json, "error")) + return(json) + + # report an error + if (!is.null(jlerr)) + stop(jlerr) + else + stop(json) + + } + + renv_json_read_jsonlite <- function(file = NULL, text = NULL) { + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") + jsonlite::fromJSON(txt = text, simplifyVector = FALSE) + } + + renv_json_read_patterns <- function() { + + list( + + # objects + list("{", "\t\n\tobject(\t\n\t", TRUE), + list("}", "\t\n\t)\t\n\t", TRUE), + + # arrays + list("[", "\t\n\tarray(\t\n\t", TRUE), + list("]", "\n\t\n)\n\t\n", TRUE), + + # maps + list(":", "\t\n\t=\t\n\t", TRUE), + + # newlines + list("\\u000a", "\n", FALSE) + + ) + + } + + renv_json_read_envir <- function() { + + envir <- new.env(parent = emptyenv()) + + envir[["+"]] <- `+` + envir[["-"]] <- `-` + + envir[["object"]] <- function(...) { + result <- list(...) + names(result) <- as.character(names(result)) + result + } + + envir[["array"]] <- list + + envir[["true"]] <- TRUE + envir[["false"]] <- FALSE + envir[["null"]] <- NULL + + envir + + } + + renv_json_read_remap <- function(object, patterns) { + + # repair names if necessary + if (!is.null(names(object))) { + + nms <- names(object) + for (pattern in patterns) + nms <- gsub(pattern[[2L]], pattern[[1L]], nms, fixed = TRUE) + names(object) <- nms + + } + + # repair strings if necessary + if (is.character(object)) { + for (pattern in patterns) + object <- gsub(pattern[[2L]], pattern[[1L]], object, fixed = TRUE) + } + + # recurse for other objects + if (is.recursive(object)) + for (i in seq_along(object)) + object[i] <- list(renv_json_read_remap(object[[i]], patterns)) + + # return remapped object + object + + } + + renv_json_read_default <- function(file = NULL, text = NULL) { + + # read json text + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") + + # convert into something the R parser will understand + patterns <- renv_json_read_patterns() + transformed <- text + for (pattern in patterns) + transformed <- gsub(pattern[[1L]], pattern[[2L]], transformed, fixed = TRUE) + + # parse it + rfile <- tempfile("renv-json-", fileext = ".R") + on.exit(unlink(rfile), add = TRUE) + writeLines(transformed, con = rfile) + json <- parse(rfile, keep.source = FALSE, srcfile = NULL)[[1L]] + + # evaluate in safe environment + result <- eval(json, envir = renv_json_read_envir()) + + # fix up strings if necessary -- do so only with reversible patterns + patterns <- Filter(function(pattern) pattern[[3L]], patterns) + renv_json_read_remap(result, patterns) + + } + + + # load the renv profile, if any + renv_bootstrap_profile_load(project) + + # construct path to library root + root <- renv_bootstrap_library_root(project) + + # construct library prefix for platform + prefix <- renv_bootstrap_platform_prefix() + + # construct full libpath + libpath <- file.path(root, prefix) + + # run bootstrap code + renv_bootstrap_exec(project, libpath, version) + + invisible() + +}) diff --git a/renv/settings.json b/renv/settings.json new file mode 100644 index 0000000..a1ae228 --- /dev/null +++ b/renv/settings.json @@ -0,0 +1,19 @@ +{ + "bioconductor.version": null, + "external.libraries": [], + "ignored.packages": [], + "package.dependency.fields": [ + "Imports", + "Depends", + "LinkingTo" + ], + "ppm.enabled": null, + "ppm.ignored.urls": [], + "r.version": null, + "snapshot.type": "all", + "use.cache": true, + "vcs.ignore.cellar": true, + "vcs.ignore.library": true, + "vcs.ignore.local": true, + "vcs.manage.ignores": true +} diff --git a/tests/testthat/test-mockdata.R b/tests/testthat/test-mockdata.R index 0755671..9c6afa5 100644 --- a/tests/testthat/test-mockdata.R +++ b/tests/testthat/test-mockdata.R @@ -13,10 +13,16 @@ test_that("parse_variable_start handles database-prefixed format", { expect_equal(parse_variable_start("cycle1::amsdmva1", "cycle1"), "amsdmva1") # Multiple databases, first match - expect_equal(parse_variable_start("cycle1::amsdmva1, cycle2::ammdmva1", "cycle1"), "amsdmva1") + expect_equal( + parse_variable_start("cycle1::amsdmva1, cycle2::ammdmva1", "cycle1"), + "amsdmva1" + ) # Multiple databases, second match - expect_equal(parse_variable_start("cycle1::amsdmva1, cycle2::ammdmva1", "cycle2"), "ammdmva1") + expect_equal( + parse_variable_start("cycle1::amsdmva1, cycle2::ammdmva1", "cycle2"), + "ammdmva1" + ) }) test_that("parse_variable_start handles bracket format", { @@ -31,16 +37,34 @@ test_that("parse_variable_start handles mixed format - bracket as DEFAULT", { # [var2] is the DEFAULT for databases not explicitly listed # Cycle1 has explicit override - expect_equal(parse_variable_start("cycle1::amsdmva1, [ammdmva1]", "cycle1"), "amsdmva1") + expect_equal( + parse_variable_start("cycle1::amsdmva1, [ammdmva1]", "cycle1"), + "amsdmva1" + ) # Cycle2-6 use bracket segment as DEFAULT - expect_equal(parse_variable_start("cycle1::amsdmva1, [ammdmva1]", "cycle2"), "ammdmva1") - expect_equal(parse_variable_start("cycle1::amsdmva1, [ammdmva1]", "cycle3"), "ammdmva1") - expect_equal(parse_variable_start("cycle1::amsdmva1, [ammdmva1]", "cycle6"), "ammdmva1") + expect_equal( + parse_variable_start("cycle1::amsdmva1, [ammdmva1]", "cycle2"), + "ammdmva1" + ) + expect_equal( + parse_variable_start("cycle1::amsdmva1, [ammdmva1]", "cycle3"), + "ammdmva1" + ) + expect_equal( + parse_variable_start("cycle1::amsdmva1, [ammdmva1]", "cycle6"), + "ammdmva1" + ) # Real example from metadata - expect_equal(parse_variable_start("cycle1::gen_15, [gen_025]", "cycle1"), "gen_15") - expect_equal(parse_variable_start("cycle1::gen_15, [gen_025]", "cycle5"), "gen_025") + expect_equal( + parse_variable_start("cycle1::gen_15, [gen_025]", "cycle1"), + "gen_15" + ) + expect_equal( + parse_variable_start("cycle1::gen_15, [gen_025]", "cycle5"), + "gen_025" + ) }) test_that("parse_variable_start handles plain format", { @@ -66,196 +90,8 @@ test_that("parse_variable_start returns NULL for invalid input", { # ============================================================================== # HELPERS: get_cycle_variables() -# ============================================================================== - -test_that("get_cycle_variables filters by exact cycle match", { - # Load test metadata - variables <- read.csv(system.file("extdata", "variables.csv", package = "chmsflow"), stringsAsFactors = FALSE) - variable_details <- read.csv(system.file("extdata", "variable-details.csv", package = "chmsflow"), stringsAsFactors = FALSE) - - # Get cycle1 variables - cycle1_vars <- get_cycle_variables("cycle1", variables, variable_details) - - # Should have variables - expect_true(nrow(cycle1_vars) > 0) - - # Check that all returned variables have cycle1 in their databaseStart - for (i in 1:nrow(cycle1_vars)) { - db_start <- cycle1_vars$databaseStart[i] - cycles <- strsplit(db_start, ",")[[1]] - cycles <- trimws(cycles) - expect_true("cycle1" %in% cycles, - info = paste("Variable", cycle1_vars$variable[i], "should have cycle1 in databaseStart")) - } -}) - -test_that("get_cycle_variables uses exact match (not substring)", { - # Load test metadata - variables <- read.csv(system.file("extdata", "variables.csv", package = "chmsflow"), stringsAsFactors = FALSE) - variable_details <- read.csv(system.file("extdata", "variable-details.csv", package = "chmsflow"), stringsAsFactors = FALSE) - - # Get cycle1 variables (should NOT include cycle1_meds) - cycle1_vars <- get_cycle_variables("cycle1", variables, variable_details) - - # Check that no cycle1_meds-only variables are included - # (Variables that ONLY have cycle1_meds, not cycle1) - for (i in 1:nrow(cycle1_vars)) { - db_start <- cycle1_vars$databaseStart[i] - cycles <- strsplit(db_start, ",")[[1]] - cycles <- trimws(cycles) - - # If this variable is in cycle1_meds but NOT in cycle1, that's an error - if ("cycle1_meds" %in% cycles && !"cycle1" %in% cycles) { - fail(paste("Found cycle1_meds-only variable in cycle1 results:", - cycle1_vars$variable[i])) - } - } - - expect_true(TRUE) # Test passed if we got here -}) - -test_that("get_cycle_variables extracts variable_raw correctly", { - # Load test metadata - variables <- read.csv(system.file("extdata", "variables.csv", package = "chmsflow"), stringsAsFactors = FALSE) - variable_details <- read.csv(system.file("extdata", "variable-details.csv", package = "chmsflow"), stringsAsFactors = FALSE) - - cycle1_vars <- get_cycle_variables("cycle1", variables, variable_details) - - # Check that variable_raw is populated for non-DerivedVar - non_derived <- cycle1_vars[!grepl("DerivedVar::", cycle1_vars$variableStart), ] - - if (nrow(non_derived) > 0) { - # Should have variable_raw for most non-derived variables - has_raw <- sum(!is.na(non_derived$variable_raw)) - expect_true(has_raw > 0, info = "Should have some variables with raw names extracted") - } -}) - -# ============================================================================== -# HELPERS: get_raw_variables() -# ============================================================================== - -test_that("get_raw_variables returns unique raw variable names", { - # Load test metadata - variables <- read.csv(system.file("extdata", "variables.csv", package = "chmsflow"), stringsAsFactors = FALSE) - variable_details <- read.csv(system.file("extdata", "variable-details.csv", package = "chmsflow"), stringsAsFactors = FALSE) - - raw_vars <- get_raw_variables("cycle1", variables, variable_details) - - # Check that all variable_raw are unique - expect_equal(nrow(raw_vars), length(unique(raw_vars$variable_raw)), - info = "All raw variable names should be unique") -}) - -test_that("get_raw_variables groups harmonized variables correctly", { - # Load test metadata - variables <- read.csv(system.file("extdata", "variables.csv", package = "chmsflow"), stringsAsFactors = FALSE) - variable_details <- read.csv(system.file("extdata", "variable-details.csv", package = "chmsflow"), stringsAsFactors = FALSE) - - raw_vars <- get_raw_variables("cycle1", variables, variable_details) - - # Check that n_harmonized matches the count in harmonized_vars - for (i in 1:nrow(raw_vars)) { - harmonized_list <- strsplit(raw_vars$harmonized_vars[i], ", ")[[1]] - expect_equal(raw_vars$n_harmonized[i], length(harmonized_list), - info = paste("Count should match list length for", raw_vars$variable_raw[i])) - } -}) - -test_that("get_raw_variables excludes derived variables by default", { - # Load test metadata - variables <- read.csv(system.file("extdata", "variables.csv", package = "chmsflow"), stringsAsFactors = FALSE) - variable_details <- read.csv(system.file("extdata", "variable-details.csv", package = "chmsflow"), stringsAsFactors = FALSE) - - # Default: include_derived = FALSE - raw_vars <- get_raw_variables("cycle1", variables, variable_details) - - # Should not have NA in variable_raw (DerivedVar returns NA) - expect_true(all(!is.na(raw_vars$variable_raw)), - info = "No NA raw variable names when derived excluded") -}) # ============================================================================== -# GENERATORS: create_cat_var() +# v0.1 legacy tests removed +# New v0.2 tests should be added here # ============================================================================== - -test_that("create_cat_var generates categorical variable", { - # Load test metadata - variables <- read.csv(system.file("extdata", "variables.csv", package = "chmsflow"), stringsAsFactors = FALSE) - variable_details <- read.csv(system.file("extdata", "variable-details.csv", package = "chmsflow"), stringsAsFactors = FALSE) - - # Create empty mock data frame - df_mock <- data.frame(id = 1:100) - - # Create a categorical variable - result <- create_cat_var( - var_raw = "clc_sex", - cycle = "cycle1", - variable_details = variable_details, - variables = variables, - length = 100, - df_mock = df_mock, - seed = 123 - ) - - # Should return a data frame - expect_true(is.data.frame(result) || is.null(result)) - - if (!is.null(result)) { - # Should have one column - expect_equal(ncol(result), 1) - - # Should have 100 rows - expect_equal(nrow(result), 100) - - # Column name should be the raw variable name - expect_equal(names(result)[1], "clc_sex") - } -}) - -test_that("create_cat_var returns NULL if variable already exists", { - # Load test metadata - variables <- read.csv(system.file("extdata", "variables.csv", package = "chmsflow"), stringsAsFactors = FALSE) - variable_details <- read.csv(system.file("extdata", "variable-details.csv", package = "chmsflow"), stringsAsFactors = FALSE) - - # Create mock data with clc_sex already present - df_mock <- data.frame( - id = 1:100, - clc_sex = sample(c("1", "2"), 100, replace = TRUE) - ) - - # Try to create clc_sex again - result <- create_cat_var( - var_raw = "clc_sex", - cycle = "cycle1", - variable_details = variable_details, - variables = variables, - length = 100, - df_mock = df_mock, - seed = 123 - ) - - # Should return NULL (variable already exists) - expect_null(result) -}) - -test_that("create_cat_var returns NULL if no variable details found", { - # Load test metadata - variables <- read.csv(system.file("extdata", "variables.csv", package = "chmsflow"), stringsAsFactors = FALSE) - variable_details <- read.csv(system.file("extdata", "variable-details.csv", package = "chmsflow"), stringsAsFactors = FALSE) - - df_mock <- data.frame(id = 1:100) - - # Try to create a variable that doesn't exist - result <- create_cat_var( - var_raw = "nonexistent_variable", - cycle = "cycle1", - variable_details = variable_details, - variables = variables, - length = 100, - df_mock = df_mock - ) - - # Should return NULL - expect_null(result) -}) diff --git a/tests/testthat/test-rtype-coercion.R b/tests/testthat/test-rtype-coercion.R new file mode 100644 index 0000000..d90262b --- /dev/null +++ b/tests/testthat/test-rtype-coercion.R @@ -0,0 +1,321 @@ +# ============================================================================== +# Tests for rType coercion +# ============================================================================== +# Tests for language-specific type coercion in continuous and categorical +# variable generators +# ============================================================================== + +# ============================================================================== +# CONTINUOUS VARIABLES: create_con_var() with rType +# ============================================================================== + +test_that("create_con_var returns integer when rType = 'integer'", { + # Setup metadata with rType = integer + variable_details <- data.frame( + variable = c("age"), + recStart = c("[18, 100]"), + recEnd = c("copy"), + catLabel = c("Age in years"), + variableStart = c("AGE_01"), + databaseStart = c("cycle1"), + rType = c("integer") + ) + + variables <- data.frame( + variable = c("age"), + variableStart = c("AGE_01"), + databaseStart = c("cycle1"), + databaseEnd = c("cycle1"), + variableType = c("continuous") + ) + + # Generate age variable + result <- create_con_var( + var_raw = "AGE_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + seed = 123 + ) + + # Check that result is integer + expect_type(result$AGE_01, "integer") + expect_true(is.integer(result$AGE_01)) + + # Check that values are in range + expect_true(all(result$AGE_01 >= 18 & result$AGE_01 <= 100)) +}) + +test_that("create_con_var returns double when rType = 'double'", { + # Setup metadata with rType = double + variable_details <- data.frame( + variable = c("bmi"), + recStart = c("[10.0, 50.0]"), + recEnd = c("copy"), + catLabel = c("Body mass index"), + variableStart = c("BMI_01"), + databaseStart = c("cycle1"), + rType = c("double") + ) + + variables <- data.frame( + variable = c("bmi"), + variableStart = c("BMI_01"), + databaseStart = c("cycle1"), + databaseEnd = c("cycle1"), + variableType = c("continuous") + ) + + # Generate BMI variable + result <- create_con_var( + var_raw = "BMI_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + seed = 123 + ) + + # Check that result is double + expect_type(result$BMI_01, "double") + expect_true(is.double(result$BMI_01)) + + # Check that values are in range + expect_true(all(result$BMI_01 >= 10.0 & result$BMI_01 <= 50.0)) +}) + +test_that("create_con_var defaults to double when rType not specified", { + # Setup metadata WITHOUT rType column + variable_details <- data.frame( + variable = c("income"), + recStart = c("[0, 200000]"), + recEnd = c("copy"), + catLabel = c("Total income"), + variableStart = c("INC_01"), + databaseStart = c("cycle1") + ) + + variables <- data.frame( + variable = c("income"), + variableStart = c("INC_01"), + databaseStart = c("cycle1"), + databaseEnd = c("cycle1"), + variableType = c("continuous") + ) + + # Generate income variable + result <- create_con_var( + var_raw = "INC_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + seed = 123 + ) + + # Check that result is double (default) + expect_type(result$INC_01, "double") +}) + +# ============================================================================== +# CATEGORICAL VARIABLES: create_cat_var() with rType +# ============================================================================== + +test_that("create_cat_var returns factor when rType = 'factor'", { + # Setup metadata with rType = factor + variable_details <- data.frame( + variable = c("smoking", "smoking", "smoking"), + recStart = c("1", "2", "3"), + recEnd = c("1", "2", "3"), + catLabel = c("Daily smoker", "Occasional smoker", "Never smoked"), + variableStart = c("SMK_01", "SMK_01", "SMK_01"), + databaseStart = c("cycle1", "cycle1", "cycle1"), + rType = c("factor", "factor", "factor") + ) + + variables <- data.frame( + variable = c("smoking"), + variableStart = c("SMK_01"), + databaseStart = c("cycle1"), + databaseEnd = c("cycle1"), + variableType = c("categorical") + ) + + # Generate smoking variable + result <- create_cat_var( + var_raw = "SMK_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + seed = 123 + ) + + # Check that result is factor + expect_true(is.factor(result$SMK_01)) + + # Check that factor has correct levels + expect_equal(levels(result$SMK_01), c("1", "2", "3")) +}) + +test_that("create_cat_var returns character when rType = 'character'", { + # Setup metadata with rType = character + variable_details <- data.frame( + variable = c("province", "province"), + recStart = c("AB", "ON"), + recEnd = c("AB", "ON"), + catLabel = c("Alberta", "Ontario"), + variableStart = c("PROV_01", "PROV_01"), + databaseStart = c("cycle1", "cycle1"), + rType = c("character", "character") + ) + + variables <- data.frame( + variable = c("province"), + variableStart = c("PROV_01"), + databaseStart = c("cycle1"), + databaseEnd = c("cycle1"), + variableType = c("categorical") + ) + + # Generate province variable + result <- create_cat_var( + var_raw = "PROV_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + seed = 123 + ) + + # Check that result is character + expect_type(result$PROV_01, "character") + expect_true(is.character(result$PROV_01)) +}) + +test_that("create_cat_var returns logical when rType = 'logical'", { + # Setup metadata with rType = logical + variable_details <- data.frame( + variable = c("eligible", "eligible"), + recStart = c("TRUE", "FALSE"), + recEnd = c("TRUE", "FALSE"), + catLabel = c("Eligible", "Not eligible"), + variableStart = c("ELIG_01", "ELIG_01"), + databaseStart = c("cycle1", "cycle1"), + rType = c("logical", "logical") + ) + + variables <- data.frame( + variable = c("eligible"), + variableStart = c("ELIG_01"), + databaseStart = c("cycle1"), + databaseEnd = c("cycle1"), + variableType = c("categorical") + ) + + # Generate eligible variable + result <- create_cat_var( + var_raw = "ELIG_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + seed = 123 + ) + + # Check that result is logical + expect_type(result$ELIG_01, "logical") + expect_true(is.logical(result$ELIG_01)) +}) + +test_that("create_cat_var defaults to character when rType not specified", { + # Setup metadata WITHOUT rType column + variable_details <- data.frame( + variable = c("smoking", "smoking", "smoking"), + recStart = c("1", "2", "3"), + recEnd = c("1", "2", "3"), + catLabel = c("Daily smoker", "Occasional smoker", "Never smoked"), + variableStart = c("SMK_01", "SMK_01", "SMK_01"), + databaseStart = c("cycle1", "cycle1", "cycle1") + ) + + variables <- data.frame( + variable = c("smoking"), + variableStart = c("SMK_01"), + databaseStart = c("cycle1"), + databaseEnd = c("cycle1"), + variableType = c("categorical") + ) + + # Generate smoking variable + result <- create_cat_var( + var_raw = "SMK_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + seed = 123 + ) + + # Check that result is character (default) + expect_type(result$SMK_01, "character") +}) + +# ============================================================================== +# HELPER: apply_rtype_defaults() +# ============================================================================== + +test_that("apply_rtype_defaults adds rType column with correct defaults", { + # Setup metadata WITHOUT rType + details <- data.frame( + variable = c("age", "smoking"), + typeEnd = c("cont", "cat"), + recStart = c("[18, 100]", "1"), + recEnd = c("copy", "1") + ) + + # Apply defaults + result <- apply_rtype_defaults(details) + + # Check that rType column exists + expect_true("rType" %in% names(result)) + + # Check defaults + expect_equal(result$rType[result$variable == "age"], "double") + expect_equal(result$rType[result$variable == "smoking"], "factor") +}) + +test_that("apply_rtype_defaults preserves existing rType values", { + # Setup metadata WITH rType + details <- data.frame( + variable = c("age"), + typeEnd = c("cont"), + recStart = c("[18, 100]"), + recEnd = c("copy"), + rType = c("integer") # Explicit override + ) + + # Apply defaults (should preserve existing) + result <- apply_rtype_defaults(details) + + # Check that rType is preserved + expect_equal(result$rType[1], "integer") +}) + +test_that("apply_rtype_defaults validates rType values", { + # Setup metadata with INVALID rType + details <- data.frame( + variable = c("age"), + typeEnd = c("cont"), + recStart = c("[18, 100]"), + recEnd = c("copy"), + rType = c("invalid_type") + ) + + # Apply defaults (should warn about invalid) + expect_warning( + apply_rtype_defaults(details), + "Invalid rType values found" + ) +}) diff --git a/tests/testthat/test-v02-simplified.R b/tests/testthat/test-v02-simplified.R new file mode 100644 index 0000000..b3fb019 --- /dev/null +++ b/tests/testthat/test-v02-simplified.R @@ -0,0 +1,123 @@ +# ============================================================================== +# Simplified v0.2 Tests +# ============================================================================== +# Tests for key v0.2 functionality with correct function signatures +# ============================================================================== + +test_that("create_mock_data works with file paths", { + # Create temporary files + config_file <- tempfile(fileext = ".csv") + details_file <- tempfile(fileext = ".csv") + + # Write test data + config <- data.frame( + uid = "smoking_v1", + variable = "smoking", + role = "enabled", + variableType = "categorical", + variableLabel = "Smoking status", + position = 1 + ) + + details <- data.frame( + uid = c("smoking_v1", "smoking_v1"), + uid_detail = c("smoking_v1_d1", "smoking_v1_d2"), + variable = c("smoking", "smoking"), + recStart = c("1", "2"), + recEnd = c("1", "2"), + catLabel = c("Daily", "Never"), + proportion = c(0.5, 0.5), + rType = c("factor", "factor") + ) + + write.csv(config, config_file, row.names = FALSE) + write.csv(details, details_file, row.names = FALSE) + + # Generate mock data + result <- create_mock_data( + config_path = config_file, + details_path = details_file, + n = 50, + seed = 123 + ) + + # Tests + expect_s3_class(result, "data.frame") + expect_equal(nrow(result), 50) + expect_true("smoking" %in% names(result)) + + # Clean up + unlink(c(config_file, details_file)) +}) + +test_that("parse_variable_start handles database-prefixed format", { + expect_equal(parse_variable_start("cycle1::var1", "cycle1"), "var1") + expect_equal(parse_variable_start("cycle1::age, cycle2::AGE", "cycle2"), "AGE") +}) + +test_that("parse_variable_start handles bracket format", { + expect_equal(parse_variable_start("[gen_015]", "cycle1"), "gen_015") + expect_equal(parse_variable_start("[alc_11]", "any_cycle"), "alc_11") +}) + +test_that("create_cat_var handles 'else' in recEnd", { + variable_details <- data.frame( + variable = c("smoking", "smoking", "smoking"), + recStart = c("1", "2", "else"), + recEnd = c("1", "2", "3"), + catLabel = c("Daily", "Occasional", "Never"), + variableStart = c("SMK_01", "SMK_01", "SMK_01"), + databaseStart = c("cycle1", "cycle1", "cycle1"), + rType = c("factor", "factor", "factor") + ) + + variables <- data.frame( + variable = "smoking", + variableStart = "SMK_01", + databaseStart = "cycle1", + databaseEnd = "cycle1", + variableType = "categorical" + ) + + result <- create_cat_var( + var_raw = "SMK_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + seed = 999 + ) + + expect_s3_class(result$SMK_01, "factor") + expect_true(all(result$SMK_01 %in% c("1", "2", "3"))) +}) + +test_that("determine_proportions extracts from proportion column", { + details_subset <- data.frame( + uid_detail = c("v1", "v2", "v3"), + recStart = c("1", "2", "3"), + recEnd = c("1", "2", "3"), + proportion = c(0.2, 0.5, 0.3) + ) + + result <- determine_proportions(details_subset) + + expect_type(result, "list") + expect_equal(length(result), 3) + expect_equal(sum(unlist(result)), 1.0) +}) + +test_that("get_enabled_variables filters correctly", { + config <- data.frame( + uid = c("v1", "v2", "v3"), + variable = c("var1", "var2", "var3"), + role = c("enabled", "disabled", "covariate;enabled") + ) + + result <- get_enabled_variables(config) + + expect_equal(nrow(result), 2) + expect_true("var1" %in% result$variable) + expect_true("var3" %in% result$variable) + expect_false("var2" %in% result$variable) +}) diff --git a/vignettes/.gitignore b/vignettes/.gitignore new file mode 100644 index 0000000..d0e6aec --- /dev/null +++ b/vignettes/.gitignore @@ -0,0 +1,3 @@ +/.quarto/ +*.html +*_files/ diff --git a/vignettes/advanced-topics.qmd b/vignettes/advanced-topics.qmd new file mode 100644 index 0000000..b6428f8 --- /dev/null +++ b/vignettes/advanced-topics.qmd @@ -0,0 +1,232 @@ +--- +title: "Advanced topics" +format: html +vignette: > + %\VignetteIndexEntry{Advanced topics} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} +--- + +```{r} +#| label: setup +#| include: false +# Load package - works in both local dev and pkgdown build +if (file.exists("../DESCRIPTION")) { + devtools::load_all("../", quiet = TRUE) +} else { + library(MockData) +} +``` + +
+**About this vignette:** This guide covers advanced technical topics for MockData power users. Read the [Getting started](getting-started.html) guide before this document. +
+ +## Overview + +This guide covers advanced technical topics for MockData power users, including duplicate prevention, integration with harmonization workflows, and performance considerations. + +**Prerequisites:** Read the [Getting started](getting-started.html) guide before this document. + +## Duplicate prevention: How `df_mock` works + +### Implementation + +All generator functions check if a variable already exists before creating it: + +``` r +# From create_cat_var.R (lines 64-68) +if (var_raw %in% names(df_mock)) { + # Variable already created, skip + return(NULL) +} +``` + +### Why this matters + +**Without duplicate checking:** + +``` r +# Dangerous - creates duplicate columns +for (i in 1:3) { + df <- cbind(df, create_cat_var("SMK_01", ...)) +} +# Result: df has SMK_01, SMK_01.1, SMK_01.2 +``` + +**With duplicate checking:** + +``` r +# Safe - only creates variable once +for (i in 1:3) { + col <- create_cat_var("SMK_01", ..., df_mock = df) + if (!is.null(col)) df <- cbind(df, col) +} +# Result: df has SMK_01 (created once, subsequent calls return NULL) +``` + +### Design tradeoff + +**Current API (explicit cbind):** + +- **Pro:** Explicit control, clear data flow, no surprises +- **Pro:** NULL return signals "variable exists" (useful for debugging) +- **Con:** Requires `col <- create_*(); df <- cbind(df, col)` pattern + +**Alternative API (auto-append):** + +- Function returns `df_mock` with new column appended +- Cleaner syntax: `df <- create_cat_var(..., df_mock = df)` +- Planned for v0.3.0 (breaking change) + +## Integration with harmonization workflows + +MockData is designed to work with the CCHS/CHMS harmonization ecosystem. + +### Typical workflow + +1. **Metadata preparation:** Use recodeflow metadata format +2. **Mock data generation:** Use MockData to create test datasets +3. **Harmonization development:** Test harmonization code with mock data +4. **Validation:** Verify harmonization logic before applying to real data +5. **Production:** Apply harmonization to real CCHS/CHMS data + +### Example: Testing harmonization code + +``` r +# 1. Generate mock raw data +mock_cchs <- generate_mock_cchs_cycle( + cycle = "CCHS_2001", + n = 1000, + variables = c("smoking", "age", "bmi"), + prop_NA = 0.05 +) + +# 2. Apply harmonization +harmonized <- harmonize_variables( + data = mock_cchs, + metadata = variable_details, + variables = c("smoking", "age", "bmi") +) + +# 3. Validate +test_that("harmonization handles NA codes correctly", { + expect_true(all(harmonized$smoking %in% c(1, 2, 3, NA))) + expect_false(any(harmonized$smoking %in% c(996, 997, 998, 999))) +}) +``` + +### Benefits of mock data for harmonization + +- **Faster development:** No need to access restricted data +- **Reproducible testing:** Same mock data every time +- **Edge case testing:** Easy to create extreme scenarios +- **Documentation:** Mock data examples clarify harmonization logic + +## Performance considerations + +For large-scale mock data generation: + +### Optimization strategies + +**1. Generate in batches:** + +``` r +# Instead of one large generation +result <- create_con_var(..., length = 1000000) + +# Generate in batches +batch_size <- 100000 +batches <- ceiling(1000000 / batch_size) + +result_list <- lapply(1:batches, function(i) { + create_con_var( + ..., + length = batch_size, + df_mock = data.frame(id = ((i-1)*batch_size + 1):(i*batch_size)) + ) +}) + +result <- bind_rows(result_list) +``` + +**2. Simplify distributions:** + +``` r +# Uniform is faster than normal (for continuous variables) +distribution = "uniform" # Faster +distribution = "normal" # Slower (normal distribution centered at range midpoint) +``` + +**3. Minimize metadata:** + +``` r +# Only include variables you need +variable_details_subset <- variable_details %>% + filter(variable %in% needed_vars) +``` + +### Current limitations + +- Large datasets (\>1M rows) may be slow +- Complex metadata with many variables requires more processing +- Normal distributions slower than uniform for continuous variables + +## Troubleshooting + +### Common issues + +**Issue: "Variable not found in metadata"** + +``` r +# Check variable names match +unique(variable_details$variable) +unique(variables$variable) +``` + +**Issue: "No valid categories found"** + +``` r +# Check recStart values +var_details %>% filter(variable == "problem_var") %>% select(recStart, recEnd) + +# Ensure not all rules are filtered (copy, else) +``` + +**Issue: "prop_NA doesn't work"** + +``` r +# Verify NA codes exist in metadata +na_codes <- get_variable_categories(variable_details, include_na = TRUE) +``` + +If `na_codes` is empty, no NA codes are available in the metadata. Add NA codes (typically 996-999) to `variable_details` with appropriate `recStart`/`recEnd` values. + +### Getting help + +- Check function documentation: `?create_cat_var`, `?create_con_var`, `?create_date_var` +- Review [Getting started](getting-started.html) for basic concepts +- Learn about [configuration files](cchs-example.html#configuration-format) for batch generation +- Understand [missing data patterns](missing-data.html) in health surveys +- See database examples: [CCHS](cchs-example.html), [CHMS](chms-example.html), [DemPoRT](demport-example.html) +- Open an issue on GitHub with reproducible example + +## Next steps + +**Core topics:** + +- [Configuration files](cchs-example.html#configuration-format) - Batch generation for larger projects +- [Date variables](dates.html) - Working with dates and survival times +- [Missing data](missing-data.html) - Realistic missing data patterns +- [Garbage data](cchs-example.html#garbage-data) - Simulating data quality issues + +**Database-specific examples:** + +- [CCHS example](cchs-example.html) - Canadian Community Health Survey +- [CHMS example](chms-example.html) - Canadian Health Measures Survey +- [DemPoRT example](demport-example.html) - Dementia Population Risk Tool + +**Contributing:** + +- Apply these concepts to your harmonization projects +- Contribute improvements to MockData on GitHub diff --git a/vignettes/cchs-example.qmd b/vignettes/cchs-example.qmd index 1124b0d..310d7c7 100644 --- a/vignettes/cchs-example.qmd +++ b/vignettes/cchs-example.qmd @@ -1,101 +1,111 @@ --- -title: "Example of generating mock data using CCHS files based on variable and variable-details sheets" -author: "Juan Li" -date: 2025-07-02 -format: - html: - toc: true - html-math-method: katex - css: styles.css -editor: visual +title: "CCHS example" +format: html +vignette: > + %\VignetteIndexEntry{CCHS example} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} --- -Some resources: +
+**About this vignette:** All numeric values shown in this vignette are computed from the actual CCHS sample metadata files. Code is hidden by default for readability, but you can view the source `.qmd` file to see how values are calculated. +
- +## Overview -```{r} -#| warning: false -#| message: false -#| output: false - -library(dplyr) # Data manipulation -library(stringr) # Working with strings -#library(simstudy) # Generate simulated data sets: https://cran.r-project.org/web/packages/simstudy/vignettes/simstudy.html - -# Load MockData package functions -# Note: When running as vignette, use library(MockData) -# For development, source directly: -source("../R/mockdata-parsers.R") -source("../R/mockdata-helpers.R") -source("../R/create_cat_var.R") -source("../R/create_con_var.R") +This example demonstrates generating mock Canadian Community Health Survey (CCHS) data using cchsflow metadata. The generated mock data can be used to test harmonization workflows before accessing real CCHS data. +```{r setup} +#| message: false +library(MockData) +library(dplyr) +library(stringr) ``` -## Read in variable and variable_details sheet +## Load metadata + +Load the CCHS harmonization metadata files that define variables and their details across cycles. -```{r} +```{r load-metadata} # CCHS sample variables -variables <- read.csv(system.file("extdata/cchs/cchsflow_sample_variables.csv", package = "MockData"), - header = T, check.names=FALSE, na.strings=c("","NA","N/A")) -# CCHS sample variable details from cchsflow -variable_details <- read.csv(system.file("extdata/cchs/cchsflow_sample_variable_details.csv", package = "MockData"), - header = T, check.names=FALSE, na.strings=c("","NA","N/A")) +variables <- read.csv( + system.file("extdata/cchs/variables_cchsflow_sample.csv", package = "MockData"), + header = TRUE, + check.names = FALSE, + na.strings = c("", "NA", "N/A"), + stringsAsFactors = FALSE +) + +# CCHS sample variable details +variable_details <- read.csv( + system.file("extdata/cchs/variable_details_cchsflow_sample.csv", package = "MockData"), + header = TRUE, + check.names = FALSE, + na.strings = c("", "NA", "N/A"), + stringsAsFactors = FALSE +) ``` -## Get required cycles +The CCHS sample metadata includes `r nrow(variables)` harmonized variables with `r nrow(variable_details)` detail rows. -```{r} +## Extract available cycles + +```{r extract-cycles} +#| echo: false # Extract unique cycle names from databaseStart column cycles <- sort(unique(unlist(str_split(paste(variables$databaseStart, collapse = ","), ",")))) cycles <- str_trim(cycles[str_detect(cycles, "cchs")]) -print("Available CCHS cycles:") -print(cycles) ``` -## Understanding the metadata +The sample metadata includes `r length(cycles)` CCHS cycles: `r paste(cycles, collapse = ", ")`. -The sample metadata includes 20 harmonized variables. Let's examine how they're structured for one cycle: +## Understanding the metadata -```{r} +```{r examine-cycle} +#| echo: false # Pick the first cycle to explore example_cycle <- cycles[1] -cat("Examining cycle:", example_cycle, "\n\n") # Get all harmonized variables available in this cycle cycle_vars <- get_cycle_variables(example_cycle, variables, variable_details) +``` + +The sample metadata includes 20 harmonized variables. For `r example_cycle`, there are `r nrow(cycle_vars)` harmonized variables available: -cat("Total harmonized variables in", example_cycle, ":", nrow(cycle_vars), "\n") -cat("Sample of variables:\n") -print(head(cycle_vars[, c("variable", "variable_raw", "variableType", "label")], 10)) +```{r show-cycle-vars} +#| echo: false +knitr::kable(head(cycle_vars[, c("variable", "variable_raw", "variableType", "label")], 10)) ``` ## Get raw variables to generate -For mock data generation, we need to create the **raw source variables** (before harmonization), not the harmonized variables: +For mock data generation, we need to create the **raw source variables** (before harmonization), not the harmonized variables. -```{r} +```{r get-raw-variables} # Get unique raw variables needed for this cycle (excludes derived variables) raw_vars <- get_raw_variables(example_cycle, variables, variable_details, include_derived = FALSE) +``` -cat("\nUnique raw variables to generate:", nrow(raw_vars), "\n") -print(raw_vars) - +```{r compute-raw-stats} +#| echo: false # Separate by type for easier processing raw_cat <- raw_vars[raw_vars$variableType == "Categorical", ] raw_con <- raw_vars[raw_vars$variableType == "Continuous", ] +``` -cat("\n- Categorical:", nrow(raw_cat), "variables") -cat("\n- Continuous:", nrow(raw_con), "variables\n") +This cycle requires `r nrow(raw_vars)` unique raw variables: `r nrow(raw_cat)` categorical and `r nrow(raw_con)` continuous. + +```{r show-raw-vars} +#| echo: false +knitr::kable(raw_vars) ``` ## Generate mock data for one cycle -Now let's generate mock data for a single cycle using the modern helper-driven approach: +Now let's generate mock data for a single cycle. -```{r} +```{r configure-generation} # Configuration n_records <- 100 target_cycle <- example_cycle @@ -103,22 +113,21 @@ seed <- 12345 # Initialize data frame df_mock <- data.frame(id = 1:n_records) - -cat("Generating", n_records, "mock records for", target_cycle, "\n\n") ``` +We'll generate `r n_records` mock records for `r target_cycle`. + ### Generate categorical variables -```{r} +```{r generate-categorical} +#| echo: false # Get raw categorical variables for this cycle raw_cat_vars <- get_raw_variables(target_cycle, variables, variable_details, include_derived = FALSE) raw_cat_vars <- raw_cat_vars[raw_cat_vars$variableType == "Categorical", ] -cat("Generating", nrow(raw_cat_vars), "categorical variables:\n") for (i in 1:nrow(raw_cat_vars)) { var_raw <- raw_cat_vars$variable_raw[i] - cat(" -", var_raw, "\n") result <- create_cat_var( var_raw = var_raw, @@ -134,22 +143,21 @@ for (i in 1:nrow(raw_cat_vars)) { df_mock <- cbind(df_mock, result) } } - -cat("\nCategorical variables generated. Data frame now has", ncol(df_mock), "columns\n") ``` +Generated `r nrow(raw_cat_vars)` categorical variables. Data frame now has `r ncol(df_mock)` columns. + ### Generate continuous variables -```{r} +```{r generate-continuous} +#| echo: false # Get raw continuous variables for this cycle raw_con_vars <- get_raw_variables(target_cycle, variables, variable_details, include_derived = FALSE) raw_con_vars <- raw_con_vars[raw_con_vars$variableType == "Continuous", ] -cat("Generating", nrow(raw_con_vars), "continuous variables:\n") for (i in 1:nrow(raw_con_vars)) { var_raw <- raw_con_vars$variable_raw[i] - cat(" -", var_raw, "\n") result <- create_con_var( var_raw = var_raw, @@ -166,59 +174,45 @@ for (i in 1:nrow(raw_con_vars)) { df_mock <- cbind(df_mock, result) } } - -cat("\nContinuous variables generated. Data frame now has", ncol(df_mock), "columns\n") ``` -### Examine the result - -```{r} -# Show structure -cat("\nMock data structure:\n") -str(df_mock) +Generated `r nrow(raw_con_vars)` continuous variables. Final data frame has `r ncol(df_mock)` columns. -# Show first few rows -cat("\nFirst 10 rows:\n") -print(head(df_mock, 10)) - -# Check for missing values -cat("\nMissing value summary:\n") -na_counts <- colSums(is.na(df_mock)) -print(na_counts[na_counts > 0]) -``` - -## 2. Generate mock data of derived variables +### Examine the result -```{r} +**Mock data structure:** +```{r examine-result} +#| echo: false +str(df_mock) ``` -## 3. Optional: further manipulate data - -### Add missing data - -```{r} +**First 5 rows:** +```{r show-first-rows} +#| echo: false +knitr::kable(head(df_mock, 5)) ``` -### Add spoiled data - -```{r} - +```{r check-missing} +#| echo: false +na_counts <- colSums(is.na(df_mock)) +has_missing <- any(na_counts > 0) ``` -## 4. Add info from Table 1 +**Missing values:** `r if(has_missing) paste(sum(na_counts > 0), "variables have missing values") else "No missing values"` -```{r} +## Summary -``` - -## 5. Add info from correlation matrix +This example demonstrated generating mock CCHS data for testing cchsflow harmonization workflows. The generated data: -```{r} - -``` +- Respects category ranges from variable_details +- Includes appropriate missing values +- Uses reproducible seeds +- Can be used to test harmonization functions before accessing real CCHS data -```{r} +## Next steps -``` \ No newline at end of file +- Test your cchsflow harmonization pipeline on this mock data +- Generate mock data for additional cycles as needed +- Calculate derived variables after harmonization (not during mock data generation) \ No newline at end of file diff --git a/vignettes/chms-example.qmd b/vignettes/chms-example.qmd index e2f400e..0b2aaba 100644 --- a/vignettes/chms-example.qmd +++ b/vignettes/chms-example.qmd @@ -1,101 +1,111 @@ --- -title: "Example of generating mock data using CHMS files based on variable and variable-details sheets" -author: "Juan Li" -date: 2025-10-21 -format: - html: - toc: true - html-math-method: katex -editor: visual +title: "CHMS example" +format: html +vignette: > + %\VignetteIndexEntry{CHMS example} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} --- -## Overview +
+**About this vignette:** All numeric values shown in this vignette are computed from the actual CHMS sample metadata files. Code is hidden by default for readability, but you can view the source `.qmd` file to see how values are calculated. +
-The Canadian Health Measures Survey (CHMS) data exists only in secure data environments. This example demonstrates how to generate mock CHMS data for testing chmsflow workflows. +## Overview -## Setup +The Canadian Health Measures Survey (CHMS) data exists only in secure data environments. This example demonstrates how to generate mock CHMS data using chmsflow metadata for testing harmonization workflows before accessing real data. -```{r} -#| warning: false +```{r setup} #| message: false -#| output: false - -library(dplyr) # Data manipulation -library(stringr) # Working with strings - -# Load MockData package functions -# Note: When running as vignette, use library(MockData) -# For development, source directly: -source("../R/mockdata-parsers.R") -source("../R/mockdata-helpers.R") -source("../R/create_cat_var.R") -source("../R/create_con_var.R") - +library(MockData) +library(dplyr) +library(stringr) ``` -## Read in variable and variable_details sheets +## Load metadata + +Load the CHMS harmonization metadata files that define variables and their details across cycles. -```{r} +```{r load-metadata} # CHMS sample variables -variables <- read.csv(system.file("extdata/chms/chmsflow_sample_variables.csv", package = "MockData"), - header = T, check.names=FALSE, na.strings=c("","NA","N/A")) +variables <- read.csv( + system.file("extdata/chms/variables_chmsflow_sample.csv", package = "MockData"), + header = TRUE, + check.names = FALSE, + na.strings = c("", "NA", "N/A"), + stringsAsFactors = FALSE +) + # CHMS sample variable details -variable_details <- read.csv(system.file("extdata/chms/chmsflow_sample_variable_details.csv", package = "MockData"), - header = T, check.names=FALSE, na.strings=c("","NA","N/A")) +variable_details <- read.csv( + system.file("extdata/chms/variable_details_chmsflow_sample.csv", package = "MockData"), + header = TRUE, + check.names = FALSE, + na.strings = c("", "NA", "N/A"), + stringsAsFactors = FALSE +) ``` -## Get required cycles +The CHMS sample metadata includes `r nrow(variables)` harmonized variables with `r nrow(variable_details)` detail rows. -```{r} +## Extract available cycles + +```{r extract-cycles} +#| echo: false # Extract unique cycle names from databaseStart column cycles <- sort(unique(unlist(str_split(paste(variables$databaseStart, collapse = ","), ",")))) cycles <- str_trim(cycles[str_detect(cycles, "cycle")]) -print("Available CHMS cycles:") -print(cycles) ``` -## Understanding the metadata +The sample metadata includes `r length(cycles)` CHMS cycles: `r paste(cycles, collapse = ", ")`. -The sample metadata includes 20 harmonized variables. Let's examine how they're structured for one cycle: +## Understanding the metadata -```{r} +```{r examine-cycle} +#| echo: false # Pick the first cycle to explore example_cycle <- cycles[1] -cat("Examining cycle:", example_cycle, "\n\n") # Get all harmonized variables available in this cycle cycle_vars <- get_cycle_variables(example_cycle, variables, variable_details) +``` -cat("Total harmonized variables in", example_cycle, ":", nrow(cycle_vars), "\n") -cat("Sample of variables:\n") -print(head(cycle_vars[, c("variable", "variable_raw", "variableType", "label")], 10)) +The sample metadata includes 20 harmonized variables. For `r example_cycle`, there are `r nrow(cycle_vars)` harmonized variables available: + +```{r show-cycle-vars} +#| echo: false +knitr::kable(head(cycle_vars[, c("variable", "variable_raw", "variableType", "label")], 10)) ``` ## Get raw variables to generate -For mock data generation, we need to create the **raw source variables** (before harmonization), not the harmonized variables: +For mock data generation, we need to create the **raw source variables** (before harmonization), not the harmonized variables. -```{r} +```{r get-raw-variables} # Get unique raw variables needed for this cycle (excludes derived variables) raw_vars <- get_raw_variables(example_cycle, variables, variable_details, include_derived = FALSE) +``` -cat("\nUnique raw variables to generate:", nrow(raw_vars), "\n") -print(raw_vars) - +```{r compute-raw-stats} +#| echo: false # Separate by type for easier processing raw_cat <- raw_vars[raw_vars$variableType == "Categorical", ] raw_con <- raw_vars[raw_vars$variableType == "Continuous", ] +``` + +This cycle requires `r nrow(raw_vars)` unique raw variables: `r nrow(raw_cat)` categorical and `r nrow(raw_con)` continuous. -cat("\n- Categorical:", nrow(raw_cat), "variables") -cat("\n- Continuous:", nrow(raw_con), "variables\n") +```{r show-raw-vars} +#| echo: false +knitr::kable(raw_vars) ``` ## Generate mock data for one cycle -Now let's generate mock data for a single cycle using the modern helper-driven approach: +Now let's generate mock data for a single cycle. -```{r} +```{r configure-generation} # Configuration n_records <- 100 target_cycle <- example_cycle @@ -103,22 +113,21 @@ seed <- 12345 # Initialize data frame df_mock <- data.frame(id = 1:n_records) - -cat("Generating", n_records, "mock records for", target_cycle, "\n\n") ``` +We'll generate `r n_records` mock records for `r target_cycle`. + ### Generate categorical variables -```{r} +```{r generate-categorical} +#| echo: false # Get raw categorical variables for this cycle raw_cat_vars <- get_raw_variables(target_cycle, variables, variable_details, include_derived = FALSE) raw_cat_vars <- raw_cat_vars[raw_cat_vars$variableType == "Categorical", ] -cat("Generating", nrow(raw_cat_vars), "categorical variables:\n") for (i in 1:nrow(raw_cat_vars)) { var_raw <- raw_cat_vars$variable_raw[i] - cat(" -", var_raw, "\n") result <- create_cat_var( var_raw = var_raw, @@ -134,22 +143,21 @@ for (i in 1:nrow(raw_cat_vars)) { df_mock <- cbind(df_mock, result) } } - -cat("\nCategorical variables generated. Data frame now has", ncol(df_mock), "columns\n") ``` +Generated `r nrow(raw_cat_vars)` categorical variables. Data frame now has `r ncol(df_mock)` columns. + ### Generate continuous variables -```{r} +```{r generate-continuous} +#| echo: false # Get raw continuous variables for this cycle raw_con_vars <- get_raw_variables(target_cycle, variables, variable_details, include_derived = FALSE) raw_con_vars <- raw_con_vars[raw_con_vars$variableType == "Continuous", ] -cat("Generating", nrow(raw_con_vars), "continuous variables:\n") for (i in 1:nrow(raw_con_vars)) { var_raw <- raw_con_vars$variable_raw[i] - cat(" -", var_raw, "\n") result <- create_con_var( var_raw = var_raw, @@ -166,34 +174,45 @@ for (i in 1:nrow(raw_con_vars)) { df_mock <- cbind(df_mock, result) } } - -cat("\nContinuous variables generated. Data frame now has", ncol(df_mock), "columns\n") ``` +Generated `r nrow(raw_con_vars)` continuous variables. Final data frame has `r ncol(df_mock)` columns. + ### Examine the result -```{r} -# Show structure -cat("\nMock data structure:\n") +**Mock data structure:** + +```{r examine-result} +#| echo: false str(df_mock) +``` -# Show first few rows -cat("\nFirst 10 rows:\n") -print(head(df_mock, 10)) +**First 5 rows:** -# Check for missing values -cat("\nMissing value summary:\n") +```{r show-first-rows} +#| echo: false +knitr::kable(head(df_mock, 5)) +``` + +```{r check-missing} +#| echo: false na_counts <- colSums(is.na(df_mock)) -print(na_counts[na_counts > 0]) +has_missing <- any(na_counts > 0) ``` +**Missing values:** `r if(has_missing) paste(sum(na_counts > 0), "variables have missing values") else "No missing values"` + ## Summary -This example demonstrates generating mock CHMS data for testing chmsflow workflows. The generated data: +This example demonstrated generating mock CHMS data for testing chmsflow harmonization workflows. The generated data: + +- Respects category ranges from variable_details +- Includes appropriate missing values +- Uses reproducible seeds +- Can be used to test harmonization functions before accessing real CHMS data -- Respects category ranges from variable_details -- Includes tagged NA values -- Uses reproducible seeds -- Can be used for testing harmonisation functions +## Next steps -For production use, generate all variables across all cycles using the approach shown in `mockdata-tools/test-all-cycles.R`. +- Test your chmsflow harmonization pipeline on this mock data +- Generate mock data for additional cycles as needed +- Calculate derived variables after harmonization (not during mock data generation) \ No newline at end of file diff --git a/vignettes/dates.qmd b/vignettes/dates.qmd new file mode 100644 index 0000000..099caf2 --- /dev/null +++ b/vignettes/dates.qmd @@ -0,0 +1,768 @@ +--- +title: "Date variables and temporal data" +format: html +vignette: > + %\VignetteIndexEntry{Date variables and temporal data} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} +--- + +
+**About this vignette:** This reference document provides comprehensive technical specifications for date variable generation. For step-by-step tutorials, see [Working with date variables](tutorial-dates.html). +
+ +## Overview + +MockData supports generating date variables for temporal analysis, including survival analysis and longitudinal studies. This vignette covers: + +- Creating date variables from metadata +- Distribution options for realistic temporal patterns +- Simulating different source formats (CSV, SAS) for harmonization testing +- Generating invalid dates for testing validation pipelines +- Best practices for temporal mock data + +## Basic date generation + +The `create_date_var()` function generates date variables from SAS date format specifications in your metadata. + +### Metadata format + +Date ranges are specified in SAS date format in the `recStart` column: + +``` +variable,recStart,recEnd,catLabel +death_date,"[01JAN2001, 31MAR2017]","[2001-01-01, 2017-03-31]",Death date +death_date,else,NA::b,Missing +``` + +The function parses the SAS format and generates R `Date` objects within the specified range. + +### Example: Basic date variable + +```{r} +#| message: false +#| warning: false +# Load package +library(MockData) + +# Load DemPoRT metadata (has date variables) +variable_details <- read.csv( + system.file("extdata/demport/variable_details_DemPoRT.csv", package = "MockData"), + stringsAsFactors = FALSE +) + +# Generate death dates +death_dates <- create_date_var( + var_raw = "death_date", + cycle = "ices", + variable_details = variable_details, + length = 1000, + df_mock = data.frame(), + seed = 100 +) + +# View sample +head(death_dates) +``` + +```{r} +#| echo: false +min_date <- format(min(death_dates$death_date), "%Y-%m-%d") +max_date <- format(max(death_dates$death_date), "%Y-%m-%d") +n_dates <- nrow(death_dates) +``` + +**Date range:** Minimum: `r min_date`, Maximum: `r max_date`, Sample size: `r n_dates` + +## Distribution options + +Date variables support three distribution types to create realistic temporal patterns. + +### Uniform distribution (default) + +Equal probability across all dates in the range. Suitable for calendar dates with no temporal bias. + +```{r} +#| eval: false +dates_uniform <- create_date_var( + var_raw = "study_entry_date", + cycle = "ices", + variable_details = variable_details, + length = 1000, + df_mock = data.frame(), + distribution = "uniform", # Default + seed = 100 +) +``` + +**Use cases:** + +- Study recruitment dates +- Random calendar events +- Administrative dates + +### Gompertz distribution + +Events concentrate near the end of the range, following a Gompertz survival distribution. Useful for modeling mortality and age-related events. + +```{r} +#| eval: false +dates_gompertz <- create_date_var( + var_raw = "death_date", + cycle = "ices", + variable_details = variable_details, + length = 1000, + df_mock = data.frame(), + distribution = "gompertz", + seed = 100 +) +``` + +**Use cases:** + +- Death dates (mortality increases with time) +- Disease progression events +- Age-related outcomes + +**Technical details:** + +- Shape parameter (η) = 0.1 +- Rate parameter (b) = 0.01 +- Events cluster toward end of range + +### Exponential distribution + +Events concentrate near the start of the range. Useful for time-to-event data where early events are more common. + +```{r} +#| eval: false +dates_exponential <- create_date_var( + var_raw = "first_hospitalization", + cycle = "ices", + variable_details = variable_details, + length = 1000, + df_mock = data.frame(), + distribution = "exponential", + seed = 100 +) +``` + +**Use cases:** + +- First event occurrence +- Early disease diagnosis +- Initial treatment dates + +**Technical details:** + +- Rate = 1 / (range / 3) +- Mean event time at 1/3 of range +- Events decay exponentially + +### Choosing a distribution + +| Distribution | Pattern | Best for | +|--------------|---------|----------| +| Uniform | Flat across range | Calendar dates, random events | +| Gompertz | Increases toward end | Mortality, age-related outcomes | +| Exponential | Decreases from start | First events, early diagnoses | + +### Comparing distributions + +```{r} +#| message: false +#| warning: false +# Generate dates with each distribution +dates_uniform <- create_date_var( + var_raw = "death_date", cycle = "demport", + variable_details = variable_details, + length = 1000, df_mock = data.frame(), + distribution = "uniform", seed = 100 +) + +dates_gompertz <- create_date_var( + var_raw = "death_date", cycle = "demport", + variable_details = variable_details, + length = 1000, df_mock = data.frame(), + distribution = "gompertz", seed = 101 +) + +dates_exponential <- create_date_var( + var_raw = "death_date", cycle = "demport", + variable_details = variable_details, + length = 1000, df_mock = data.frame(), + distribution = "exponential", seed = 102 +) + +# Calculate medians +median_uniform <- format(median(dates_uniform$death_date), "%Y-%m-%d") +median_gompertz <- format(median(dates_gompertz$death_date), "%Y-%m-%d") +median_exponential <- format(median(dates_exponential$death_date), "%Y-%m-%d") +``` + +**Median dates by distribution:** + +- Uniform: `r median_uniform` +- Gompertz: `r median_gompertz` +- Exponential: `r median_exponential` + +Notice how: + +- **Uniform**: Median near middle of range (2009) +- **Gompertz**: Median shifted toward end (2013) - realistic for mortality +- **Exponential**: Median shifted toward start (2005) - realistic for early events + +## Missing data + +Use `prop_NA` to introduce missing dates: + +```{r} +#| eval: false +dates_with_na <- create_date_var( + var_raw = "death_date", + cycle = "ices", + variable_details = variable_details, + length = 1000, + df_mock = data.frame(), + prop_NA = 0.05, # 5% missing + seed = 100 +) + +# Check missing proportion +sum(is.na(dates_with_na$death_date)) / 1000 # ~0.05 +``` + +**Note**: Date variables use R `NA` values rather than numeric codes, even if NA codes are specified in the metadata. + +## Source format: simulating raw data imports + +By default, MockData generates dates as R `Date` objects (analysis-ready format). However, real survey data comes in different formats depending on the source. The `source_format` parameter simulates how dates appear after importing from different file types. + +### Available formats + +**analysis (default)**: R Date objects +```{r} +#| eval: false +# Default behavior - analysis-ready dates +mock <- create_mock_data( + config_path = "variables.csv", + details_path = "variable_details.csv", + n = 100, + source_format = "analysis" # Default +) + +class(mock$interview_date) +# [1] "Date" +``` + +**csv**: Character strings (ISO format) +```{r} +#| eval: false +# Simulate dates as they appear after read.csv() +mock_csv <- create_mock_data( + config_path = "variables.csv", + details_path = "variable_details.csv", + n = 100, + source_format = "csv" +) + +class(mock_csv$interview_date) +# [1] "character" + +mock_csv$interview_date[1:3] +# [1] "2001-01-15" "2001-02-22" "2001-03-30" +``` + +**sas**: Numeric values (days since 1960-01-01) +```{r} +#| eval: false +# Simulate dates as they appear after haven::read_sas() +mock_sas <- create_mock_data( + config_path = "variables.csv", + details_path = "variable_details.csv", + n = 100, + source_format = "sas" +) + +class(mock_sas$interview_date) +# [1] "numeric" + +mock_sas$interview_date[1:3] +# [1] 15050 15087 15123 # Days since 1960-01-01 +``` + +### Use case: testing harmonization pipelines + +The `source_format` parameter is particularly useful for testing date parsing and harmonization code: + +```{r} +#| eval: false +# Generate CSV-format mock data +mock_csv <- create_mock_data( + config_path = "cchs_variables.csv", + details_path = "cchs_variable_details.csv", + n = 1000, + source_format = "csv" +) + +# Test your harmonization logic +harmonized <- mock_csv %>% + mutate( + # Parse character dates + interview_date = as.Date(interview_date, format = "%Y-%m-%d"), + + # Calculate age at baseline + age_at_baseline = as.numeric(interview_date - birth_date) / 365.25 + ) + +# Verify harmonization succeeded +stopifnot(inherits(harmonized$interview_date, "Date")) +stopifnot(all(harmonized$age_at_baseline >= 0, na.rm = TRUE)) +``` + +### Why this matters + +Real survey data doesn't arrive as clean R Date objects: + +- **CSV files**: Dates are character strings that need parsing +- **SAS files**: Dates may be numeric (if haven doesn't auto-convert) +- **SPSS/Stata files**: Various numeric formats with different epochs + +Using `source_format` lets you test your entire harmonization pipeline, not just the analysis code. + +### Converting between formats + +All formats represent the same underlying dates: + +```{r} +#| eval: false +# Generate in all three formats (same seed = same dates) +mock_analysis <- create_mock_data(..., source_format = "analysis", seed = 123) +mock_csv <- create_mock_data(..., source_format = "csv", seed = 123) +mock_sas <- create_mock_data(..., source_format = "sas", seed = 123) + +# Convert back to Date for comparison +dates_from_csv <- as.Date(mock_csv$interview_date) +dates_from_sas <- as.Date(mock_sas$interview_date, origin = "1960-01-01") + +# Verify all represent same dates +all(mock_analysis$interview_date == dates_from_csv) # TRUE +all(mock_analysis$interview_date == dates_from_sas) # TRUE +``` + +## Invalid dates for testing + +The `prop_invalid` parameter generates out-of-period dates to test validation pipelines. + +### Basic usage + +```{r} +#| message: false +#| warning: false +dates_dirty <- create_date_var( + var_raw = "death_date", + cycle = "ices", + variable_details = variable_details, + length = 1000, + df_mock = data.frame(), + prop_invalid = 0.03, # 3% invalid + seed = 100 +) + +# Check for dates outside valid range +valid_start <- as.Date("2001-01-01") +valid_end <- as.Date("2017-03-31") + +n_too_early <- sum(dates_dirty$death_date < valid_start, na.rm = TRUE) +n_too_late <- sum(dates_dirty$death_date > valid_end, na.rm = TRUE) +total_invalid <- n_too_early + n_too_late +pct_invalid <- sprintf("%.1f%%", 100 * total_invalid / nrow(dates_dirty)) +``` + +**Invalid date summary:** + +- Dates before range: `r n_too_early` +- Dates after range: `r n_too_late` +- Total invalid: `r total_invalid` out of `r nrow(dates_dirty)` (`r pct_invalid`) + +```{r} +#| echo: false +# Show some invalid dates +invalid_dates <- dates_dirty$death_date[ + dates_dirty$death_date < valid_start | dates_dirty$death_date > valid_end +] +sample_early <- format(head(sort(invalid_dates[invalid_dates < valid_start]), 3), "%Y-%m-%d") +sample_late <- format(head(sort(invalid_dates[invalid_dates > valid_end], decreasing = TRUE), 3), "%Y-%m-%d") +``` + +**Sample invalid dates:** + +- Too early: `r paste(sample_early, collapse = ", ")` +- Too late: `r paste(sample_late, collapse = ", ")` + +### Invalid date characteristics + +- **Range**: 1-5 years before start or after end +- **Distribution**: Split evenly between too-early and too-late +- **Realism**: Mimics common data entry errors + +### Combining NA and invalid + +```{r} +#| eval: false +dates_complex <- create_date_var( + var_raw = "death_date", + cycle = "ices", + variable_details = variable_details, + length = 1000, + df_mock = data.frame(), + prop_NA = 0.02, # 2% missing + prop_invalid = 0.03, # 3% invalid + seed = 100 +) + +# Validation check +stopifnot(prop_NA + prop_invalid <= 1.0) # Must sum to ≤ 1 +``` + +## Configuration-driven workflow + +For complex studies with multiple events and data quality parameters, use configuration files to manage settings. This approach improves reproducibility and makes it easy to share study specifications. + +### Using configuration files + +Configuration files are CSV files with four columns: parameter, value, type, and description. They specify study design, time windows, event parameters, and data quality settings. + +```{r} +#| eval: false + +# Load configuration +config <- read_study_config(system.file("extdata/study_config_example.csv", package = "MockData")) + +# Validate configuration +validate_study_config(config) + +# Generate survival data using config parameters +survival_data <- create_survival_dates( + entry_var = "index_date", + event_var = "death_date", + entry_start = config$accrual_start, + entry_end = config$accrual_end, + followup_min = config$followup_min, + followup_max = config$followup_max, + length = config$sample_size, + df_mock = data.frame(), + event_distribution = config$death_distribution, + prop_censored = config$prop_censored, + seed = config$seed +) +``` + +**Benefits:** + +- All study parameters in one file +- Easy to version control and share +- Validates parameters before generation +- Documents study design decisions +- Supports both open cohort and fixed follow-up designs + +See `inst/extdata/study_config_example.csv` for a complete example configuration. + +## Survival analysis workflows + +### Basic cohort study + +Use `create_survival_dates()` to generate paired entry and event dates with guaranteed temporal ordering: + +```{r} +#| message: false +#| warning: false +# Mortality study with 5-year recruitment, up to 10-year follow-up +surv_data <- create_survival_dates( + entry_var = "cohort_entry", + event_var = "death_date", + entry_start = as.Date("2000-01-01"), + entry_end = as.Date("2004-12-31"), + followup_min = 365, # Min 1 year follow-up + followup_max = 3650, # Max 10 years + length = 1000, + df_mock = data.frame(), + event_distribution = "gompertz", # Realistic mortality pattern + seed = 100 +) + +# View sample +head(surv_data, 5) +``` + +**Key features:** + +- Entry dates uniformly distributed across recruitment period +- Event dates follow Gompertz distribution (mortality increases with time) +- Guaranteed: `death_date > cohort_entry` for all records + +```{r} +#| echo: false +# Calculate follow-up statistics +followup_days <- as.numeric(surv_data$death_date - surv_data$cohort_entry) +median_fu <- median(followup_days) +range_fu <- range(followup_days) +mean_fu <- round(mean(followup_days)) +``` + +**Follow-up time summary (days):** + +- Median: `r median_fu` +- Range: `r range_fu[1]` - `r range_fu[2]` +- Mean: `r mean_fu` + +### Censoring + +Add censoring to simulate incomplete follow-up: + +```{r} +#| message: false +#| warning: false +surv_censored <- create_survival_dates( + entry_var = "entry", + event_var = "event", + entry_start = as.Date("2010-01-01"), + entry_end = as.Date("2015-12-31"), + followup_min = 30, + followup_max = 1825, # 5 years + length = 1000, + df_mock = data.frame(), + event_distribution = "exponential", + prop_censored = 0.3, # 30% censored + seed = 200 +) + +# View structure +head(surv_censored, 5) +``` + +The `event_status` column indicates: + +- **1** = event observed (death occurred) +- **0** = censored (lost to follow-up, end of study) + +```{r} +#| echo: false +n_events <- sum(surv_censored$event_status == 1) +pct_events <- sprintf("(%.1f%%)", 100 * mean(surv_censored$event_status == 1)) +n_censored <- sum(surv_censored$event_status == 0) +pct_censored <- sprintf("(%.1f%%)", 100 * mean(surv_censored$event_status == 0)) +``` + +**Censoring summary:** + +- Events: `r n_events` `r pct_events` +- Censored: `r n_censored` `r pct_censored` + +### Distribution comparison for survival data + +Different distributions create different event patterns: + +```{r} +#| message: false +#| warning: false +# Uniform: constant hazard +surv_uniform <- create_survival_dates( + entry_var = "entry", event_var = "event", + entry_start = as.Date("2015-01-01"), + entry_end = as.Date("2015-12-31"), + followup_min = 100, followup_max = 1000, + length = 1000, df_mock = data.frame(), + event_distribution = "uniform", seed = 301 +) + +# Gompertz: increasing hazard (aging population) +surv_gompertz <- create_survival_dates( + entry_var = "entry", event_var = "event", + entry_start = as.Date("2015-01-01"), + entry_end = as.Date("2015-12-31"), + followup_min = 100, followup_max = 1000, + length = 1000, df_mock = data.frame(), + event_distribution = "gompertz", seed = 302 +) + +# Exponential: early events (diagnosis, treatment failure) +surv_exponential <- create_survival_dates( + entry_var = "entry", event_var = "event", + entry_start = as.Date("2015-01-01"), + entry_end = as.Date("2015-12-31"), + followup_min = 100, followup_max = 1000, + length = 1000, df_mock = data.frame(), + event_distribution = "exponential", seed = 303 +) + +# Compare median survival times +followup_uniform <- as.numeric(surv_uniform$event - surv_uniform$entry) +followup_gompertz <- as.numeric(surv_gompertz$event - surv_gompertz$entry) +followup_exponential <- as.numeric(surv_exponential$event - surv_exponential$entry) + +median_uniform_tte <- median(followup_uniform) +median_gompertz_tte <- median(followup_gompertz) +median_exponential_tte <- median(followup_exponential) +``` + +**Median time-to-event (days):** + +- Uniform: `r median_uniform_tte` +- Gompertz: `r median_gompertz_tte` +- Exponential: `r median_exponential_tte` + +**Pattern interpretation:** + +- **Uniform**: Events spread evenly across follow-up +- **Gompertz**: More events later (realistic for age-related mortality) +- **Exponential**: More events early (realistic for disease progression) + +### Longitudinal studies + +Generate visit dates across a study period: + +```{r} +#| eval: false +# Baseline visit (uniform across recruitment period) +baseline <- create_date_var( + var_raw = "visit_baseline", + cycle = "cohort", + variable_details = variable_details, + length = 500, + df_mock = data.frame(), + distribution = "uniform", + seed = 200 +) + +# Follow-up visits would be generated relative to baseline +# (Currently manual - see planned temporal constraints in parking-lot.md) +``` + +### Testing data validation + +Generate realistic errors for pipeline testing: + +```{r} +#| eval: false +# Create test data with multiple error types +test_dates <- create_date_var( + var_raw = "death_date", + cycle = "ices", + variable_details = variable_details, + length = 10000, + df_mock = data.frame(), + prop_NA = 0.02, + prop_invalid = 0.01, + seed = 300 +) + +# Test your validation function +validate_dates <- function(dates, min_date, max_date) { + errors <- list() + + # Check for missing + if (any(is.na(dates))) { + errors$missing <- sum(is.na(dates)) + } + + # Check for out-of-range + valid_dates <- dates[!is.na(dates)] + if (any(valid_dates < min_date | valid_dates > max_date)) { + errors$out_of_range <- sum( + valid_dates < min_date | valid_dates > max_date + ) + } + + return(errors) +} + +# Run validation +errors <- validate_dates( + test_dates$death_date, + min_date = as.Date("2001-01-01"), + max_date = as.Date("2017-03-31") +) + +# The errors list will contain any validation issues found +``` + +## Best practices + +### Seed management + +Use different seeds for different date variables to ensure independence: + +```{r} +#| eval: false +birth_dates <- create_date_var(..., seed = 100) +death_dates <- create_date_var(..., seed = 101) +diagnosis_dates <- create_date_var(..., seed = 102) +``` + +### Distribution selection + +1. **Start with uniform** for calendar dates without known patterns +2. **Use Gompertz** for mortality and age-related outcomes +3. **Use exponential** for first-event or early-diagnosis scenarios +4. **Validate** against real data distributions when possible + +### Temporal constraints + +**Current limitation**: MockData v0.2.0 does not enforce temporal relationships between dates (e.g., birth < death). + +**Workarounds**: + +- Generate dates independently and post-process +- Use appropriate distributions to minimize violations +- Document assumptions in your code + +**Future**: See [parking-lot.md](../parking-lot.md) for planned `after`/`before` parameters in v0.3.0. + +### Testing strategies + +1. **Test both valid and invalid data**: + ```r + # Valid data for algorithm testing + clean_dates <- create_date_var(..., prop_invalid = 0) + + # Dirty data for validation testing + dirty_dates <- create_date_var(..., prop_invalid = 0.05) + ``` + +2. **Use realistic error proportions**: + - Real surveys: 1-5% invalid + - Administrative data: 0.1-1% invalid + - Manual entry: 5-10% invalid + +3. **Document your assumptions**: + ```r + # Generate dates with 3% invalid to match historical error rate + # from 2015-2017 data linkage (see docs/data-quality-report.pdf) + test_dates <- create_date_var(..., prop_invalid = 0.03) + ``` + +## Limitations and future enhancements + +### Current limitations + +- No automatic temporal constraints between dates +- Limited distribution options (3 types) +- No support for recurrent events +- No time-varying covariates + +### Planned features + +See [parking-lot.md](../parking-lot.md) for: + +- **Temporal constraints** (v0.3.0): `after`, `before` parameters +- **Survival helpers** (v0.3.0): `create_survival_vars()` +- **Recurrent events** (v0.4.0): Multiple events per subject +- **Time-varying covariates** (v0.5.0): Variables that change over time + +## Next steps + +- [User guide](user-guide.html) - Comprehensive feature documentation +- [DemPoRT example](demport-example.html) - Applied survival analysis workflow +- [Advanced topics](advanced-topics.html) - Custom distributions and workflows +- `?create_date_var` - Function reference diff --git a/vignettes/demport-example.qmd b/vignettes/demport-example.qmd index e401427..1e9c66b 100644 --- a/vignettes/demport-example.qmd +++ b/vignettes/demport-example.qmd @@ -1,197 +1,738 @@ --- -title: "Create mock data for DemPoRT" -author: "Juan Li" -date: 2025-07-30 -format: - html: - toc: true - html-math-method: katex - css: styles.css -editor: visual +title: "DemPoRT example: Survival analysis workflow" +format: html +vignette: > + %\VignetteIndexEntry{DemPoRT example: Survival analysis workflow} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} --- -Some resources: +
+**About this vignette:** All numeric values shown in this vignette are computed from the actual DemPoRT metadata files. Code is hidden by default for readability, but you can view the source `.qmd` file to see how values are calculated. +
- +## Overview -```{r} -#| warning: false +This vignette demonstrates generating mock data for **DemPoRT** (Dementia Population Risk Tool), a survival analysis model predicting dementia risk. DemPoRT uses harmonized data from multiple Canadian Community Health Survey (CCHS) cycles spanning 2001-2018. Dementia incidence (onset) is individually linked using administrative data housed at ICES -- along with mortality records and other censoring information, where it is combined with CCHS survey data. + +**The MockData workflow for multi-cycle projects:** + +1. **Generate separate mock datasets** for individual cycles/databases (e.g., CCHS 2001, CCHS 2003) +2. **Hand off to analyst** to test harmonization pipeline (using recodeflow/cchsflow) +3. **Harmonize and bind** the individual datasets using your analysis code +4. **Calculate derived variables** after harmonization + +MockData generates **raw, unharmonized data** that mimics individual source databases. It does NOT pool or bind data—that is the analyst's responsibility to test. + +**What you'll learn:** + +- Generate mock data for individual survey cycles +- Understand multi-cycle metadata structure +- Test harmonization workflows with mock data +- Validate metadata consistency +- Generate survival analysis variables (dates, events) + +**Prerequisites:** + +- [Getting started](getting-started.html) - Basic mock data generation +- [Configuration files](tutorial-config-files.html) - Batch generation approach +- [Date variables](dates.html) - Temporal data and survival analysis + +## Setup + +Load required packages: + +```{r setup} #| message: false -#| output: false - -library(dplyr) # Data manipulation -library(stringr) # Working with strings -#library(simstudy) # Generate simulated data sets: https://cran.r-project.org/web/packages/simstudy/vignettes/simstudy.html - -# Load MockData package functions -# Note: When running as vignette, use library(MockData) -# For development, source directly: -source("../R/mockdata-parsers.R") -source("../R/mockdata-helpers.R") -source("../R/create_cat_var.R") -source("../R/create_con_var.R") - -``` - -## Read in variable and variable_details sheet - -```{r} -# DemPoRT variables -variables <- read.csv(system.file("extdata/demport/variables_DemPoRT.csv", package = "MockData"), - header = T, check.names=FALSE, na.strings=c("","NA","N/A")) -# DemPoRT variable details -variable_details <- read.csv(system.file("extdata/demport/variable_details_DemPoRT.csv", package = "MockData"), - header = T, check.names=FALSE, na.strings=c("","NA","N/A")) -``` - -## Get required cycles - -```{r} -cycles <- unlist(str_split(paste(variables$databaseStart, collapse = ","), ",")) -cycles <- unlist(str_split(cycles, " ")) -cycles <- str_trim(cycles[str_detect(cycles, "cchs")]) # trim whitespaces -(cycles <- sort(unique(cycles))) - -# NOTE: clean cycles -cycles <- sort(unique(str_replace_all(cycles, "cchs_", "cchs"))) -cycles -``` - -## Get variable names of each type - -```{r} -# check if variables and variable_details sheets match -var1 <- variables$variable -var2 <- unique(variable_details$variable) - -print("In variables, not in variable_details:") -var1[!(var1 %in% var2)] -print("In variable_details, not in variables:") -var2[!(var2 %in% var1)] -``` - -```{r} -# --- derived variables --- -var_derived <- unique(c(variables[str_detect(variables$variableStart, "DerivedVar::") | - str_detect(variables$variable, "_der"), "variable"], - variable_details[str_detect(variable_details$variableStart, "DerivedVar::") | - str_detect(variable_details$variable, "_der"), "variable"])) -print("--- Derived variables: ---") -print(var_derived) - -# --- original variables --- -# categorical variables -var_cat <- unique(c(variables[variables$variableType == "Categorical", "variable"], - variable_details[variable_details$variableType == "Categorical", "variable"])) -var_cat <- var_cat[!(var_cat %in% var_derived)] # remove derived variable -print("--- Categorical variables: ---") -print(var_cat) - -# continuous variables -var_con <- unique(c(variables[variables$variableType == "Continuous", "variable"], - variable_details[variable_details$variableType == "Continuous", "variable"])) -var_con <- var_con[!(var_con %in% var_derived)] # remove derived variable -print("--- Continuous variables: ---") -print(var_con) - -# check -nrow(variables) == length(var_derived) + length(var_cat) + length(var_con) -``` - -## 1. Generate mock data of original variables - -### Categorical variables - -```{r} -length <- 5 - -df_cat <- data.frame() -for (cycle in cycles) { - df_i <- data.frame(cycle = rep(cycle, length)) - for (var in var_cat) { - # Note: Using new function signature from mockdata-generators.R - col <- create_cat_var( - var_raw = var, - cycle = cycle, - variable_details = variable_details, - variables = variables, - length = length, - df_mock = df_i - ) - if (!is.null(col)) { - df_i <- bind_cols(df_i, col) - } - } - df_cat <- bind_rows(df_cat, df_i) -} +library(MockData) +library(dplyr) +library(stringr) ``` -### Continuous variables - -```{r} -df_con <- data.frame() -for (cycle in cycles) { - df_i <- data.frame(cycle = rep(cycle, length)) - for (var in var_con) { - # Note: Using new function signature from mockdata-generators.R - # Catch warnings - tryCatch({ - col <- create_con_var( - var_raw = var, - cycle = cycle, - variable_details = variable_details, - variables = variables, - length = length, - df_mock = df_i, - distribution = "uniform" - ) - }, warning = function(w) print(paste0(var, " in ", cycle))) - - # Run again to actually get the result (workaround for tryCatch behavior) - col <- create_con_var( - var_raw = var, - cycle = cycle, - variable_details = variable_details, - variables = variables, - length = length, - df_mock = df_i, - distribution = "uniform" - ) - if (!is.null(col)) { - df_i <- bind_cols(df_i, col) - } +## Required inputs + +Typically, you need three configuration files to generate mock data: + +1. **Mock data config file** (`mock_data_config.csv`): Specifies which variables to generate and their roles +2. **Variables file** (`variables.csv`): Defines variable metadata (labels, types, cycles) +3. **Variable details file** (`variable_details.csv`): Specifies distributions and categories + +**Note**: The mock data config file is not yet complete for DemPoRT. This example demonstrates generating mock data directly from harmonization metadata (variables and variable_details files). We will update this vignette once the mock data config is available. + +For DemPoRT, the harmonization metadata describes **20+ individual CCHS cycles** (2001-2018): + +```{r load-metadata} +# Load DemPoRT metadata +variables <- read.csv( + system.file("extdata/demport/variables_DemPoRT.csv", package = "MockData"), + header = TRUE, + check.names = FALSE, + na.strings = c("", "NA", "N/A"), + stringsAsFactors = FALSE +) + +variable_details <- read.csv( + system.file("extdata/demport/variable_details_DemPoRT.csv", package = "MockData"), + header = TRUE, + check.names = FALSE, + na.strings = c("", "NA", "N/A"), + stringsAsFactors = FALSE +) +``` + +```{r metadata-summary} +#| echo: false +first_5_vars <- paste(head(variables$variable, 5), collapse = ", ") +``` + +The DemPoRT metadata includes `r nrow(variables)` variables with `r nrow(variable_details)` detail rows. First 5 variables: `r first_5_vars`. + +**Variable types in the metadata:** + +- **Categorical**: Sex, education, marital status, immigration status +- **Continuous**: Age, BMI, alcohol consumption +- **Date**: Birth date, interview date (baseline), death date (outcome) +- **Derived**: Age groups, BMI categories (calculated from raw variables) + +**Important**: The metadata describes **harmonized target variables**, not raw source data. MockData uses this metadata to generate mock data that mimics **raw source databases** before harmonization. + +**Multi-cycle structure**: Each variable's metadata includes a `databaseStart` column listing which cycles contain that variable (e.g., "cchs2001_p, cchs2003_p, cchs2005_p"). + +## Generate mock data + +The simplest way to generate DemPoRT mock data is using `create_mock_data()`. This function reads the metadata files and generates all variables at once. + +```{r generate-mock-data} +#| eval: false +# Generate mock data for all DemPoRT raw variables +# Derived variables are automatically excluded +mock_demport <- create_mock_data( + config_path = system.file("extdata/demport/variables_DemPoRT.csv", package = "MockData"), + details_path = system.file("extdata/demport/variable_details_DemPoRT.csv", package = "MockData"), + n = 100, + seed = 123 +) + +# View structure +dim(mock_demport) +# [1] 100 69 + +# First few columns +names(mock_demport)[1:5] +# [1] "ADL_01" "ADL_02" "ADL_03" "ADL_04" "ADL_05" + +# Show sample of first 3 rows, first 5 columns +head(mock_demport[, 1:5], 3) +# ADL_01 ADL_02 ADL_03 ADL_04 ADL_05 +# 1 No difficulty No difficulty No help No help No help +# 2 Some difficulty No difficulty No help No help Some help +# 3 No difficulty No difficulty No help No help No help +``` + +**Important: Derived variables are NOT generated** + +MockData automatically excludes derived variables during generation. Derived variables (e.g., `ADL_der`, `HWTGBMI_der`, `pack_years_der`) are calculated from raw variables and should NOT be generated as mock data. + +**How it works:** + +1. Variables with `role = "derived,enabled"` are automatically filtered out +2. Only raw variables (e.g., `ADL_01`, `HWTGHTM`, `HWTGWTK`) are generated. This includes raw variables required to calculate derived variables. +3. You calculate derived variables using your analysis pipeline after generation. + +**Why this matters:** + +- **Consistency**: Derived variables use the same calculation logic as your real analysis +- **Testing**: Test your derived variable calculations on mock data +- **Correctness**: Prevents generating fake derived values that don't match raw inputs + +## Understanding multi-cycle data + +DemPoRT harmonizes and pools data from multiple CCHS cycles. The harmonization metadata specifies which cycles contain each variable via the `databaseStart` column. + +**Key concept**: MockData generates individual cycle datasets (e.g., mock CCHS 2001, mock CCHS 2003). The analyst then: + +1. Harmonizes each cycle separately using recodeflow/cchsflow +2. Binds the harmonized cycles together +3. Calculates derived variables on the pooled dataset + +### Extract cycle information + +```{r extract-cycles} +#| echo: false +# Parse cycles from databaseStart column +cycles_raw <- unlist(str_split(paste(variables$databaseStart, collapse = ","), ",")) +cycles <- cycles_raw %>% + str_split(" ") %>% + unlist() %>% + str_trim() %>% + str_subset("cchs") %>% + str_replace_all("cchs_", "cchs") %>% # Standardize naming + unique() %>% + sort() +``` + +DemPoRT harmonizes `r length(cycles)` CCHS cycles ranging from 2001 to 2017-2018. The cycles are: `r paste(cycles, collapse = ", ")`. + +**Interpretation:** + +- Each variable may appear in **different subsets** of cycles +- Example: `EDU_04` (education) appears in cycles 2001-2014, but not 2015-2018 + +### Check variable coverage by cycle + +```{r check-variable-coverage} +#| echo: false +# Example: Which cycles have education variable? +edu_cycles <- variables %>% + filter(variable == "EDU_04") %>% + pull(databaseStart) %>% + str_split(",") %>% + unlist() %>% + str_trim() + +first_3_edu <- paste(head(edu_cycles, 3), collapse = ", ") +``` + +The EDU_04 (education) variable is available in `r length(edu_cycles)` cycles. First 3: `r first_3_edu`. + +**Why this matters for MockData:** + +- Generate separate mock datasets for each cycle you want to test +- Each cycle will have different variables based on `databaseStart` metadata +- Test your harmonization pipeline on individual cycles before pooling +- Missing data patterns may differ by cycle + +## Validate metadata consistency + +Before generating mock data, it's good practice to check that your config and details files are aligned. + +```{r validate-metadata} +#| echo: false +# Get unique variables from each file +vars_config <- unique(variables$variable) +vars_details <- unique(variable_details$variable) + +# Check for mismatches +vars_missing_details <- setdiff(vars_config, vars_details) +vars_extra_details <- setdiff(vars_details, vars_config) + +all_vars_have_details <- length(vars_missing_details) == 0 +no_extra_vars <- length(vars_extra_details) == 0 +``` + +The metadata includes `r length(vars_config)` variables in config and `r length(vars_details)` variables in details. `r if(all_vars_have_details) "All config variables have details." else paste("Warning: ", length(vars_missing_details), " variables missing details.")` `r if(no_extra_vars) "No extra variables in details." else paste("Warning: ", length(vars_extra_details), " extra variables in details.")` + +**Common issues this catches:** + +- Typos in variable names +- Variables defined in config but missing implementation details +- Orphaned details rows from deleted variables +- Helpful for troubleshooting `create_mock_data()` errors + +## Classify variables by type + +Understanding variable types helps organize analysis and identify which variables need special handling. + +```{r classify-variables} +#| echo: false +# Identify derived variables (shouldn't be in raw mock data) +var_derived <- variables %>% + filter( + str_detect(variableStart, "DerivedVar::") | + str_detect(variable, "_der") + ) %>% + pull(variable) %>% + unique() + +# Classify raw variables by type +# Note: DemPoRT uses "Categorical" and "Continuous" (capital C) +var_cat <- variables %>% + filter( + variableType == "Categorical", + !(variable %in% var_derived) + ) %>% + pull(variable) %>% + unique() + +var_con <- variables %>% + filter( + variableType == "Continuous", + !(variable %in% var_derived) + ) %>% + pull(variable) %>% + unique() + +total_vars <- length(var_derived) + length(var_cat) + length(var_con) +all_accounted <- nrow(variables) == total_vars +``` + +**Variable type summary:** + +- Derived: `r length(var_derived)` +- Categorical: `r length(var_cat)` +- Continuous: `r length(var_con)` +- Total: `r total_vars` + +`r if(all_accounted) "Classification accounts for all variables." else "Warning: Some variables unclassified."` + +**About derived variables:** + +- Examples: `age_cat` (age groups), `bmi_cat` (BMI categories) +- These are **calculated** from raw variables (age, BMI) after harmonization +- Should **not** be generated as raw mock data +- In real workflows, you'd calculate them using recodeflow after generating raw variables + +## Examine data quality for individual cycles + +After generating mock data for an individual cycle, check variable completeness and data types. + +**Remember**: You're examining **one cycle's raw data** here, not pooled data. Each cycle may have different variables and different data patterns. + +```{r examine-data-quality} +#| eval: false +# Example: Check mock data for CCHS 2001 +# (Replace mock_demport with your cycle-specific dataset, e.g., mock_2001) + +# Check for date variables +date_vars <- names(mock_demport)[sapply(mock_demport, inherits, "Date")] + +cat("Date variables in this cycle:\n") +if (length(date_vars) > 0) { + for (var in date_vars) { + date_range <- range(mock_demport[[var]], na.rm = TRUE) + n_missing <- sum(is.na(mock_demport[[var]])) + + cat(sprintf(" %s: %s to %s (%d missing)\n", + var, + as.character(date_range[1]), + as.character(date_range[2]), + n_missing)) } - df_con <- bind_rows(df_con, df_i) +} else { + cat(" (No date variables in this cycle)\n") +} + +# Check for factor variables +factor_vars <- names(mock_demport)[sapply(mock_demport, is.factor)] + +cat("\nFactor variables:", length(factor_vars), "\n") +if (length(factor_vars) > 0) { + cat(" First 3:", paste(head(factor_vars, 3), collapse = ", "), "\n") + + # Show levels for first factor + cat(sprintf(" %s levels: %s\n", + factor_vars[1], + paste(levels(mock_demport[[factor_vars[1]]]), collapse = ", "))) +} + +# Example output: +# Factor variables: 8 +# First 3: DHH_SEX, EDU_04, SMK_202 +# DHH_SEX levels: Male, Female + +# Check for numeric variables +numeric_vars <- names(mock_demport)[sapply(mock_demport, is.numeric)] + +cat("\nNumeric variables:", length(numeric_vars), "\n") +if (length(numeric_vars) > 0) { + cat(" First 3:", paste(head(numeric_vars, 3), collapse = ", "), "\n") } + +# Example output: +# Numeric variables: 12 +# First 3: ADL_01, ADL_02, HWTDHTM +``` + +## Practical workflow: Generate individual cycle datasets + +MockData generates **separate datasets for individual cycles**. You do NOT bind them together in MockData - that's the analyst's job to test harmonization. + +**Recommended workflow:** + +### Step 1: Filter metadata for each cycle + +```{r filter-metadata-by-cycle} +#| eval: false + +# Example: Create cycle-specific metadata files +# Filter variables and details by databaseStart column + +# CCHS 2001 +vars_2001 <- variables %>% + filter(str_detect(databaseStart, "cchs2001")) + +details_2001 <- variable_details %>% + filter(variable %in% vars_2001$variable) + +# Save cycle-specific metadata +write.csv(vars_2001, "demport_variables_2001.csv", row.names = FALSE) +write.csv(details_2001, "demport_details_2001.csv", row.names = FALSE) + +# Repeat for other cycles... ``` -### combine +### Step 2: Generate mock data for each cycle + +```{r generate-by-cycle} +#| eval: false + +# Generate separate mock dataset for CCHS 2001 +mock_2001 <- create_mock_data( + config_path = "demport_variables_2001.csv", + details_path = "demport_details_2001.csv", + n = 1000, + seed = 2001 # Cycle-specific seed for reproducibility +) -```{r} -df <- bind_cols(df_cat, df_con[, !(names(df_con) %in% names(df_cat))]) -write.csv(df, paste0("output/mock_all_cycles.csv"), row.names = F) +# Generate separate mock dataset for CCHS 2003 +mock_2003 <- create_mock_data( + config_path = "demport_variables_2003.csv", + details_path = "demport_details_2003.csv", + n = 1000, + seed = 2003 +) + +# MockData STOPS here - hand off to analyst ``` -### save for each cycle +### Step 3: Test harmonization (analyst's job) + +After generating individual cycle datasets, you'll harmonize them using your harmonization pipeline (e.g., recodeflow/cchsflow), bind the harmonized cycles together, and calculate derived variables. Good luck! + +**Key principles:** + +1. **MockData generates**: Individual raw cycle datasets (separate files/objects) +2. **Analyst harmonizes**: Each cycle using recodeflow/cchsflow +3. **Analyst binds**: Harmonized cycles together for analysis +4. **Analyst calculates**: Derived variables on pooled data + +**Why separate cycles matter:** + +- Tests harmonization logic on realistic raw data structure +- Allows cycle-specific sample sizes (CCHS 2001 = 130K, CCHS 2017 = 110K) +- Enables testing cycle-specific missing patterns +- Matches real workflow: harmonize first, then pool + +## Survival analysis dates + +DemPoRT is a survival model predicting time to dementia diagnosis. This section demonstrates how to generate realistic survival dates with proper temporal ordering and competing risks. -```{r} -for (cycle in cycles) { - dfi <- df %>% filter(cycle == cycle) - nNA <- colSums(is.na(dfi)) - dfi[, nNA == 0] +### Date variables for survival analysis + +The table below shows the date variables in temporal order. The survival analysis focuses on the three key dates: **interview** (cohort entry), **dementia onset** (primary outcome), and **death** (competing risk). Birth date is included in the metadata for age calculation but is not required for the survival analysis itself. + +| Variable | Role in analysis | Date range | Temporal constraint | +|----------|------------------|------------|---------------------| +| `birth_date` | Age calculation (not used in survival analysis) | 1920-1987 | birth < interview | +| `interview_date` | **Cohort entry (t=0)** | 2001-2005 | Baseline for all follow-up | +| `dementia_onset_date` | **Primary outcome** | 2001-2017 | interview < dementia < death | +| `death_date` | **Competing risk** | 2001-2017 | interview < death | + +**Administrative censoring:** End of follow-up is 2017-03-31. Individuals alive at this date are censored. + +### Step 1: Generate survival dates with temporal ordering + +The `create_survival_dates()` function generates paired entry and event dates with guaranteed temporal ordering. This must be called separately from `create_mock_data()` because it processes TWO variables together. + +```{r survival-dates-generation} +#| message: false +#| warning: false + +# Extract metadata for interview (cohort entry) and death (competing risk) +interview_details <- variable_details %>% + filter(variable == "interview_date") + +death_details <- variable_details %>% + filter(variable == "death_date") + +interview_row <- variables %>% + filter(variable == "interview_date") + +death_row <- variables %>% + filter(variable == "death_date") + +# Generate 1000 individuals with guaranteed temporal ordering +survival_dates <- create_survival_dates( + entry_var_row = interview_row, + entry_details_subset = interview_details, + event_var_row = death_row, + event_details_subset = death_details, + n = 1000, + seed = 456, + df_mock = data.frame() +) +``` + +**Verify temporal ordering and date ranges:** + +```{r date-verification} +#| echo: false + +# Build verification table +verification <- data.frame( + Variable = c("interview_date", "death_date"), + Min = c( + format(min(survival_dates$interview_date), "%Y-%m-%d"), + format(min(survival_dates$death_date), "%Y-%m-%d") + ), + Max = c( + format(max(survival_dates$interview_date), "%Y-%m-%d"), + format(max(survival_dates$death_date), "%Y-%m-%d") + ), + Expected = c("2001-2005", "2001-2017"), + `Temporal ordering` = c( + "Baseline (t=0)", + sprintf("✓ All >= interview (n=%d)", sum(survival_dates$death_date >= survival_dates$interview_date)) + ), + check.names = FALSE +) + +knitr::kable(verification, caption = "Generated date ranges and temporal ordering verification") +``` + +### Step 2: Add competing risks (dementia onset) + +Real survival studies track multiple outcomes. In DemPoRT, two mutually exclusive events can occur: + +1. **Dementia diagnosis** (primary outcome) +2. **Death without dementia** (competing risk) + +We'll simulate dementia occurring between interview and death for 10% of the cohort: + +```{r competing-risks} +#| message: false +#| warning: false + +# Simulate dementia incidence (10% develop dementia) +set.seed(789) +survival_dates$dementia_occurred <- rbinom( + n = nrow(survival_dates), + size = 1, + prob = 0.10 +) + +# For those with dementia, set dementia_onset_date between interview and death +survival_dates$dementia_onset_date <- ifelse( + survival_dates$dementia_occurred == 1, + survival_dates$interview_date + + runif(nrow(survival_dates)) * + (survival_dates$death_date - survival_dates$interview_date), + NA +) + +# Convert back to Date class +survival_dates$dementia_onset_date <- as.Date( + survival_dates$dementia_onset_date, + origin = "1970-01-01" +) +``` - write.csv(dfi, paste0("output/mock_", cycle, ".csv"), row.names = F) +### Step 3: Add administrative censoring + +Not everyone is followed to death in real cohort studies. We apply administrative censoring at 2017-03-31 (end of follow-up): + +```{r censoring} +#| message: false +#| warning: false + +# Apply censoring: individuals alive after 2017-03-31 are censored +censor_date <- as.Date("2017-03-31") +survival_dates$censored <- survival_dates$death_date > censor_date + +# Set observed death date (censored individuals get censor_date) +survival_dates$death_date_observed <- ifelse( + survival_dates$censored, + censor_date, + survival_dates$death_date +) + +survival_dates$death_date_observed <- as.Date( + survival_dates$death_date_observed, + origin = "1970-01-01" +) +``` + +### Step 4: Calculate time-to-event and final outcomes + +```{r final-time} +#| message: false +#| warning: false + +# Calculate follow-up time to first event (years) +survival_dates$time_to_event <- pmin( + as.numeric(difftime(survival_dates$dementia_onset_date, + survival_dates$interview_date, + units = "days")) / 365.25, + as.numeric(difftime(survival_dates$death_date_observed, + survival_dates$interview_date, + units = "days")) / 365.25, + na.rm = TRUE +) + +# Event type: 0=censored, 1=dementia, 2=death without dementia +survival_dates$event_type <- ifelse( + !is.na(survival_dates$dementia_onset_date), 1, + ifelse(!survival_dates$censored, 2, 0) +) +``` + +### Summary: Cohort characteristics + +```{r summary-table} +#| echo: false + +# Build comprehensive summary table +event_counts <- table(factor(survival_dates$event_type, levels = 0:2)) +mean_fu <- aggregate(time_to_event ~ event_type, + data = survival_dates, + FUN = mean) + +# Helper function to get mean FU for an event type +get_mean_fu <- function(event_val) { + idx <- which(mean_fu$event_type == event_val) + if (length(idx) > 0) { + return(sprintf("%.1f", mean_fu$time_to_event[idx])) + } + return("—") } + +summary_data <- data.frame( + Outcome = c("Censored", "Dementia", "Death"), + `Event code` = c("0", "1", "2"), + N = as.numeric(event_counts), + Percent = sprintf("%.1f%%", 100 * as.numeric(event_counts) / 1000), + `Mean follow-up (years)` = c(get_mean_fu(0), get_mean_fu(1), get_mean_fu(2)), + `Temporal ordering verified` = c( + sprintf("✓ All interview < censor (n=%d)", event_counts[1]), + sprintf("✓ All interview < dementia < death (n=%d)", event_counts[2]), + sprintf("✓ All interview < death (n=%d)", event_counts[3]) + ), + check.names = FALSE +) + +knitr::kable(summary_data, + caption = "Final cohort summary: Events, follow-up time, and temporal ordering verification") +``` + +The simulated cohort demonstrates realistic survival analysis patterns: + +- **Temporal ordering:** All dates satisfy the constraint interview < event < death +- **Competing risks:** Individuals experience either dementia or death, not both +- **Censoring:** Individuals alive at study end (2017-03-31) are censored +- **Follow-up time:** Varies by outcome, with censored individuals having longest follow-up + +### Prepare for Cox regression or competing risks analysis + +The dataset is now ready for survival analysis: + +```{r survival-analysis-example} +#| eval: false + +# Example: Cox proportional hazards for dementia +# library(survival) +# +# model_dementia <- coxph( +# Surv(time_to_event, event_type == 1) ~ age + sex + education, +# data = survival_dates +# ) +# +# # Example: Competing risks analysis +# library(cmprsk) +# +# cr_fit <- cuminc( +# ftime = survival_dates$time_to_event, +# fstatus = survival_dates$event_type, +# cencode = 0 +# ) +``` + +**Key takeaways:** + +1. `create_survival_dates()` generates entry and event dates with guaranteed temporal ordering +2. Competing risks (dementia vs death) require additional simulation between entry and event +3. Administrative censoring is applied based on study design (end date) +4. All temporal constraints are verified before analysis +5. The dataset is ready for Cox regression or competing risks models + +**See also:** [Date variables tutorial](dates.html) for more on date generation and temporal constraints. + +## Visualize mock data (optional) + +After generating mock data, you can visualize distributions to verify data quality. For example, create histograms for continuous variables (height, weight) or bar charts for categorical variables (sex, education). + +```{r visualize-mock-data} +#| eval: false + +# Example: Check a continuous variable distribution +hist(mock_demport$HWTDHTM, # Height in cm + breaks = 20, + main = "Height Distribution", + xlab = "Height (cm)", + col = "lightblue") + +# Example: Check a categorical variable distribution +barplot(table(mock_demport$DHH_SEX), + main = "Sex Distribution", + col = "lightgreen") ``` -# 2. Genarate outcome data +These visualizations help you verify that generated values fall within expected ranges and categories match your metadata specifications. + +## Export mock data -one male data one female data +Save your generated mock data for use in testing your analysis pipeline. You can export to CSV for broad compatibility or RDS to preserve R-specific data types (Date objects, factor levels). -```{r} +```{r export-mock-data} +#| eval: false +# Save to CSV (compatible with most tools) +write.csv( + mock_demport, + "demport_mock_data.csv", + row.names = FALSE +) + +# Save to RDS (preserves R data types like Date, factor levels) +saveRDS( + mock_demport, + "demport_mock_data.rds" +) ``` -```{r} +After running these commands, you'll have two files saved to your working directory: `demport_mock_data.csv` and `demport_mock_data.rds`. + +## What you learned + +This vignette demonstrated: + +1. **Batch generation** with `create_mock_data()` for complex multi-variable datasets +2. **Multi-cycle data** concepts and why they matter for survey harmonization +3. **Metadata validation** to catch inconsistencies before generation +4. **Variable classification** to distinguish raw vs. derived variables +5. **Data quality checks** to verify generated data meets expectations +6. **Survival analysis setup** including date variables and event indicators + +## Next steps + +**Core concepts:** + +- [Getting started](getting-started.html) - If you haven't read this yet +- [Configuration files](tutorial-config-files.html) - Deep dive on metadata format +- [Date variables](dates.html) - Advanced temporal data and survival workflows + +**Real-world examples:** + +- [CCHS example](cchs-example.html) - Canadian Community Health Survey +- [CHMS example](chms-example.html) - Canadian Health Measures Survey + +**Advanced topics:** + +- [Configuration reference](reference-config.html) - Complete metadata specification +- [Advanced topics](advanced-topics.html) - Performance optimization and integration + +**For DemPoRT users:** -``` \ No newline at end of file +- Apply mock data in analysis pipelines +- Test harmonization code before accessing real data +- Validate survival model implementation +- Generate sample datasets for method development diff --git a/vignettes/getting-started.qmd b/vignettes/getting-started.qmd new file mode 100644 index 0000000..5b5fa01 --- /dev/null +++ b/vignettes/getting-started.qmd @@ -0,0 +1,324 @@ +--- +title: "Getting started with MockData" +format: html +vignette: > + %\VignetteIndexEntry{Getting started with MockData} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} +--- + +```{r} +#| label: setup +#| include: false +# Load package - works in both local dev and pkgdown build +if (file.exists("../DESCRIPTION")) { + devtools::load_all("../", quiet = TRUE) +} else { + library(MockData) +} +``` + +::: callout-note +## About this vignette +This introductory tutorial teaches core MockData concepts through progressive examples. All code runs during vignette build to ensure accuracy. The generated data are for testing and development only—not for modelling or analysis. +::: + +## What is MockData? + +MockData generates metadata-driven mock datasets for testing and developing harmonisation workflows. Mock data are created solely from variable specifications and contain **no real person-level data** or identifiable information. + +### Key purposes + +- **Testing harmonisation code** (cchsflow, chmsflow) without access to real survey data +- **Developing data pipelines** with realistic variable structures before data access +- **Training and education** with representative but non-sensitive data +- **Validating data processing** workflows with controlled test inputs + +### What mock data are (and are not) + +MockData reads recodeflow metadata files (`variables.csv`, `variable-details.csv`) to generate data that mimics the variable structure of health survey datasets like CCHS and CHMS. The data have appropriate types, value ranges, and category labels—but **no real-world statistical relationships**. + +**Limitations**: While variable types and ranges match the metadata, joint distributions and correlations may differ significantly from real-world data. Mock data should never be used for population inference, epidemiological modelling, or research publication. + +## Your first mock dataset + +This tutorial walks you through generating a simple mock dataset with both categorical and continuous variables. + +### Setup + +```{r} +#| warning: false +#| message: false +#| output: false + +library(dplyr) +``` + +### Step 1: Prepare metadata + +MockData uses two metadata tables: + +1. **variables**: defines which variables exist in each database cycle +2. **variable_details**: defines categories, ranges, and recode rules + +For this tutorial, we'll use a simple example with two variables: smoking status (categorical) and age (continuous) . + +```{r} +# Define variables table +variables <- data.frame( + variable = c("smoking", "smoking", "age", "age"), + variableStart = c("SMK_01", "SMK_01", "AGE_01", "AGE_01"), + databaseStart = c("cycle1", "cycle2", "cycle1", "cycle2"), + databaseEnd = c("cycle1", "cycle2", "cycle1", "cycle2"), + variableType = c("categorical", "categorical", "continuous", "continuous") +) + +# Define variable details (categories and ranges) +variable_details <- data.frame( + variable = c("smoking", "smoking", "smoking", + "smoking", "smoking", "smoking", "smoking", + "age", "age", "age"), + recStart = c("1", "2", "3", "996", "997", "998", "999", + "[18, 100]", "996", "[997, 999]"), + recEnd = c("1", "2", "3", "996", "997", "998", "999", + "copy", "NA::a", "NA::b"), + catLabel = c("Daily smoker", "Occasional smoker", "Never smoked", + "Not applicable", "Don't know", "Refusal", "Not stated", + "Age in years", "Not applicable", "Missing"), + variableStart = c("SMK_01", "SMK_01", "SMK_01", "SMK_01", "SMK_01", "SMK_01", "SMK_01", + "AGE_01", "AGE_01", "AGE_01"), + databaseStart = c("cycle1", "cycle1", "cycle1", "cycle1", "cycle1", "cycle1", "cycle1", + "cycle1", "cycle1", "cycle1"), + rType = c("factor", "factor", "factor", "factor", "factor", "factor", "factor", + "integer", "integer", "integer") +) +``` + +**Variables table** (`r nrow(variables)` rows): + +```{r} +#| echo: false +knitr::kable(variables) +``` + +**Variable details table** (`r nrow(variable_details)` rows): + +```{r} +#| echo: false +knitr::kable(variable_details) +``` + +### Step 2: Generate a categorical variable with custom proportions + +Real survey data has different types of missing values. Use the `proportions` parameter to explicitly specify the distribution for all categories, including missing codes: + +```{r} +# Create mock data frame +df_mock <- data.frame(id = 1:1000) + +# Generate smoking variable with explicit proportions for ALL categories +smoking_col <- create_cat_var( + var_raw = "SMK_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 1000, + df_mock = df_mock, + proportions = list( + "1" = 0.30, # Daily smoker + "2" = 0.50, # Occasional smoker + "3" = 0.15, # Never smoked + "996" = 0.01, # Not applicable (valid skip) + "997" = 0.01, # Don't know + "998" = 0.02, # Refusal + "999" = 0.01 # Not stated + ) +) + +# Add to data frame +df_mock <- cbind(df_mock, smoking_col) + +# View distribution +table(df_mock$SMK_01) +``` + +**What happened:** + +- MockData extracted all 7 categories from variable_details (1, 2, 3, 996, 997, 998, 999) +- Generated 1000 random values distributed according to the specified proportions +- The `proportions` parameter gives you full control over the distribution, including missing data codes +- Categories 1-3 are valid responses, while 996-999 are different types of missing data + +For further discussion on making mock missing data see [Missing data in health surveys](missing-data.html). + +### Step 3: Generate continuous variable + +Use `create_con_var()` to generate continuous variables like age. + +```{r} +# Generate age variable +age_col <- create_con_var( + var_raw = "AGE_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + df_mock = df_mock, + distribution = "uniform" # Uniform distribution within range [18, 100] +) + +# Add to data frame +df_mock <- cbind(df_mock, age_col) + +# View results +head(df_mock, 10) +summary(df_mock$AGE_01) +``` + +**What happened:** + +- MockData extracted the range from variable_details \[18, 100\] +- Generated 100 random ages uniformly distributed between 18 and 100 +- Returned a single-column data frame that we added to df_mock + +### Step 4: Working with configuration files + +For larger projects, MockData supports batch generation using configuration CSV files instead of inline data frames. This makes it easier to generate many variables at once. + +```{r} +#| eval: false +# Read configuration files (not run in this tutorial) +config <- read_mock_data_config("mock_data_config.csv") +details <- read_mock_data_config_details("mock_data_config_details.csv") + +# Generate all variables in one call +mock_data <- create_mock_data( + config = config, + details = details, + n = 1000, + seed = 123 +) +``` + +**Why use config files:** + +- Generate dozens of variables in a single call +- Easier to maintain and version control metadata +- Consistent with recodeflow harmonization workflows +- Supports advanced features like derived variables and garbage data + +See [CCHS example](cchs-example.html), [CHMS example](chms-example.html), and [DemPoRT example](demport-example.html) for real-world configuration file usage. + +### Step 5: Control reproducibility with seeds + +Use seeds to generate the same mock data every time. + +```{r} +# Set seed for reproducibility +set.seed(12345) + +df_mock <- data.frame(id = 1:100) + +result1 <- create_cat_var( + var_raw = "SMK_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + df_mock = df_mock +) + +# Reset seed +set.seed(12345) + +df_mock <- data.frame(id = 1:100) + +result2 <- create_cat_var( + var_raw = "SMK_01", + cycle = "cycle1", + variable_details = variable_details, + variables = variables, + length = 100, + df_mock = df_mock +) + +# Verify identical +identical(result1$SMK_01, result2$SMK_01) +``` + +**Result:** TRUE - same seed produces identical mock data + +### Step 6: Working with derived variables + +MockData generates **raw variables** (direct survey measurements). Derived variables should be calculated from the generated data using harmonization workflows. + +**Conceptual workflow:** + +```{r} +#| eval: false +# 1. Generate mock raw variables +mock_data <- create_mock_data( + config = config, # Includes height_raw, weight_raw + details = details, + n = 1000 +) + +# 2. Apply harmonization to create derived variables +# (Requires cchsflow or recodeflow package) +# library(cchsflow) +# mock_data <- rec_with_table( +# data = mock_data, +# variables = variables, +# variable_details = variable_details, +# database_name = "cchs2001" +# ) +# Now mock_data includes derived variables like BMI_der, age categories, etc. +``` + +**Why this approach:** + +- Mirrors real data processing (derived variables computed during harmonization) +- Allows testing harmonization logic with mock data +- Keeps raw and derived variables separate +- Tests the complete workflow: generate → harmonize → analyze + +**Common derived variables:** + +- BMI categories from height and weight +- Age categories from continuous age +- Income quintiles from income +- Health risk scores from multiple indicators + +See [CCHS example](cchs-example.html) and [DemPoRT example](demport-example.html) for complete workflows with derived variables. + +## What you learned + +In this tutorial, you learned: + +- How to prepare metadata (variables and variable_details tables) +- How to specify custom proportions for all categories including missing codes +- The critical difference between valid skip (996) and other missing codes (997-999) +- How to calculate prevalence correctly by handling missing codes appropriately +- How to generate continuous variables with `create_con_var()` +- How configuration files enable batch generation for larger projects +- How to ensure reproducibility with seeds +- How to work with derived variables through harmonization workflows + +## Next steps + +**Core topics:** + +- [Missing data](missing-data.html) - Realistic missing data patterns in health surveys +- [Date variables](dates.html) - Working with dates and survival times +- [Configuration files](cchs-example.html#configuration-format) - Batch generation approach + +**Database-specific examples:** + +- [CCHS example](cchs-example.html) - Canadian Community Health Survey +- [CHMS example](chms-example.html) - Canadian Health Measures Survey +- [DemPoRT example](demport-example.html) - Dementia Population Risk Tool + +**Advanced topics:** + +- [Garbage data](cchs-example.html#garbage-data) - Simulating data quality issues +- [Advanced topics](advanced-topics.html) - Technical details and performance \ No newline at end of file diff --git a/vignettes/reference-config.qmd b/vignettes/reference-config.qmd new file mode 100644 index 0000000..4229c00 --- /dev/null +++ b/vignettes/reference-config.qmd @@ -0,0 +1,443 @@ +--- +title: "Configuration reference" +format: html +vignette: > + %\VignetteIndexEntry{Configuration reference} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} +--- + +
+**About this vignette:** This reference document provides the complete configuration schema specification. For step-by-step tutorials, see [Generating datasets from configuration files](tutorial-config-files.html). +
+ +## Overview + +MockData uses a two-file configuration system to define mock datasets. This reference documents the complete schema, all special codes, and validation rules. + +## File structure + +### mock_data_config.csv + +**Purpose:** Lists which variables to generate + +**Required columns:** + +| Column | Type | Description | Example | +|----------------|----------------|------------------------|----------------| +| `uid` | character | Unique identifier for this variable definition | `"age_v1"` | +| `variable` | character | Variable name (appears as column in output) | `"age"` | +| `role` | character | Set to "enabled" to generate; for dates use "baseline-date", "index-date" | `"enabled"` | +| `variableType` | character | One of: `"categorical"`, `"continuous"` (dates use "continuous") | `"continuous"` | +| `position` | integer | Generation order (1 = first, 2 = second, etc.) | `1` | + +**Optional columns:** + +| Column | Type | Description | Example | +|----------------|----------------|------------------------|----------------| +| `variableLabel` | character | Short human-readable description | `"Age in years"` | +| `variableLabelLong` | character | Extended description | `"Participant age at baseline interview"` | +| `variableUnit` | character | Unit of measurement | `"years"` | +| `notes` | character | Implementation notes | `"Rounded to nearest integer"` | + +**Example:** + +``` csv +uid,variable,role,variableType,variableLabel,position +age_v1,age,enabled,continuous,Age in years,1 +smoking_v1,smoking,enabled,categorical,Smoking status,2 +birth_date_v1,birth_date,baseline-date,continuous,Date of birth,3 +``` + +**Note:** Dates use `variableType = "continuous"` with a date-related `role` for compatibility with recodeflow metadata. + +### mock_data_config_details.csv + +**Purpose:** Defines categories, ranges, proportions, and data quality patterns + +**Required columns:** + +| Column | Type | Description | Example | +|----------------|----------------|------------------------|----------------| +| `uid` | character | Must match uid in config file | `"age_v1"` | +| `uid_detail` | character | Unique identifier for this detail row | `"age_v1_d1"` | +| `variable` | character | Must match variable in config file | `"age"` | +| `recStart` | character | Input value or range | `"[18, 100]"` | +| `recEnd` | character | Output value or special code | `"copy"` | + +**Optional but commonly used columns:** + +| Column | Type | Description | Example | +|----------------|----------------|------------------------|----------------| +| `catLabel` | character | Short label for this category | `"Valid age"` | +| `catLabelLong` | character | Extended category description | `"Age in years at baseline"` | +| `proportion` | numeric | Proportion (0-1), must sum to 1.0 per variable | `0.95` | +| `rType` | character | R data type for output ("integer", "factor", "Date", "double") | `"integer"` | +| `date_start` | Date | Start date (for date variables with `recEnd = "date_start"`) | `"2001-01-01"` | +| `date_end` | Date | End date (for date variables with `recEnd = "date_end"`) | `"2017-03-31"` | + +**Example:** + +``` csv +uid,uid_detail,variable,recStart,recEnd,catLabel,catLabelLong,proportion,rType +age_v1,age_v1_d1,age,[18,100],copy,Valid age,Age in years,0.93,integer +age_v1,age_v1_d2,age,999,NA::b,Missing,Not stated,0.05,integer +age_v1,age_v1_d3,age,[200,300],corrupt_high,Invalid age,Data entry error,0.02,integer +smoking_v1,smoking_v1_d1,smoking,1,1,Daily,Daily smoker,0.25,factor +smoking_v1,smoking_v1_d2,smoking,2,2,Occasional,Occasional smoker,0.15,factor +smoking_v1,smoking_v1_d3,smoking,3,3,Never,Never smoked,0.60,factor +``` + +## Special codes in recEnd + +### Missing data codes + +**Note on `NA::` codes:** These codes (`NA::a`, `NA::b`, `NA::c`) are part of the recodeflow harmonization framework, where they indicate how missing codes should be transformed during harmonization. When generating **raw mock data**, we use numeric missing codes that match the raw survey data format. However, the `NA::` notation is handy in metadata because: + +- It documents the **meaning** of numeric missing codes +- The same metadata can be reused for both mock data generation (outputs numeric codes) and harmonization (converts codes to proper R NA types) +- It maintains consistency between raw data simulation and the harmonization pipeline + +| Code | Meaning | Example raw data codes | +|----------------|----------------|-----------------------------------------| +| `NA::a` | Not applicable | Variable doesn't apply to this person (e.g., pregnancy questions for males). CCHS/CHMS often use 996. | +| `NA::b` | Missing/refused | Participant refused to answer or data is missing. CCHS/CHMS often use 999. | +| `NA::c` | Don't know | Participant doesn't know the answer. CCHS/CHMS often use 998 or 997. | + +**Important**: The specific numeric codes (996, 997, 998, 999) shown in examples are from CCHS/CHMS surveys documented in this package. Your database may use different codes: - Some surveys use single digits: 7, 8, 9 - Some use three digits: 997, 998, 999 - Some use ranges: \[96, 99\] - Check your survey's data dictionary for the actual codes used + +The `NA::` notation works with any numeric coding scheme - just specify the appropriate numeric codes in `recStart`. + +**Example - generates numeric codes in raw mock data:** + +``` csv +variable,recStart,recEnd,catLabel,proportion +alcohol_weekly,[0,100],copy,Drinks per week,0.85 +alcohol_weekly,996,NA::a,Not applicable,0.10 +alcohol_weekly,999,NA::b,Missing,0.05 +``` + +This will generate raw data with numeric values 0-100, 996, and 999. During harmonization with recodeflow, the 996 and 999 codes will be converted to proper R NA values based on the `NA::a` and `NA::b` specifications. + +### Value transformation codes + +| Code | Meaning | Usage | +|--------------------|-----------------------------|-----------------------| +| `copy` | Pass through unchanged | Use with ranges like `[0, 100]` - generates values in range | +| `date_start` | Extract date_start column | For date variables: marks the row containing start date | +| `date_end` | Extract date_end column | For date variables: marks the row containing end date | + +**Example:** + +``` csv +variable,recStart,recEnd,catLabel,date_start,date_end,proportion +index_date,NA,date_start,Start date,2001-01-01,,1.0 +index_date,NA,date_end,End date,,2017-03-31,1.0 +``` + +### Garbage/data quality codes + +| Code | Meaning | Usage | +|--------------------|-----------------------------|-----------------------| +| `corrupt_low` | Below valid range | Generate values lower than expected (e.g., age = -5) | +| `corrupt_high` | Above valid range | Generate values higher than expected (e.g., age = 250) | +| `corrupt_future` | Future dates | For date variables: dates after valid range | +| `corrupt_past` | Past dates | For date variables: dates before valid range | + +**Example:** + +``` csv +variable,recStart,recEnd,catLabel,proportion +age,[18,100],copy,Valid age,0.95 +age,[200,300],corrupt_high,Invalid age,0.03 +age,[-10,0],corrupt_low,Negative age,0.02 +``` + +**Important:** Garbage proportions are SEPARATE from valid+missing proportions. MockData first allocates values to valid vs missing (which must sum to 1.0), then applies garbage to a subset of the valid values. + +## recStart syntax + +### Single values + +``` csv +recStart,recEnd,Meaning +1,1,Value 1 +2,2,Value 2 +999,NA::b,Code 999 becomes missing +``` + +### Ranges + +**Inclusive ranges** (both endpoints included): + +``` csv +recStart,Meaning +[0,100],Values from 0 to 100 inclusive +[18.5,25),Values from 18.5 (inclusive) to 25 (exclusive) +``` + +**Range notation:** + +- `[a, b]`: Inclusive on both ends (a ≤ x ≤ b) +- `[a, b)`: Inclusive start, exclusive end (a ≤ x \< b) +- `(a, b]`: Exclusive start, inclusive end (a \< x ≤ b) +- `(a, b)`: Exclusive on both ends (a \< x \< b) + +**For categorical variables:** Ranges expand to all integer values + +``` csv +recStart,recEnd,Expands to +[1,5],copy,"1, 2, 3, 4, 5" +``` + +**For continuous variables:** Ranges define sampling bounds + +``` csv +recStart,recEnd,Generates +[0,100],copy,Random values uniformly distributed between 0 and 100 +``` + +### Date format + +**Raw data format:** Real survey data (like CCHS/CHMS) stores dates in SAS format (e.g., `01JAN2001`). MockData can parse these formats in `recStart`: + +``` csv +recStart,recEnd,Meaning +[01JAN2001,31MAR2017],copy,Dates between Jan 1 2001 and Mar 31 2017 +``` + +**Output format controlled by `source_format` parameter:** + +By default, MockData generates dates as **R Date objects** (analysis-ready format). However, you can simulate different source formats to test harmonization pipelines: + +``` r +# Default: analysis-ready R Date objects +mock <- create_mock_data(..., source_format = "analysis") + +# CSV format: character ISO strings +mock_csv <- create_mock_data(..., source_format = "csv") + +# SAS format: numeric (days since 1960-01-01) +mock_sas <- create_mock_data(..., source_format = "sas") +``` + +**Format options:** + +- `"analysis"` (default): R Date objects - ready for analysis +- `"csv"`: Character strings (`"2001-01-15"`) - simulates `read.csv()` output +- `"sas"`: Numeric values (days since 1960-01-01) - simulates `haven::read_sas()` output + +**Use case:** Testing harmonization code that needs to parse dates from raw sources: + +``` r +# Generate CSV-format mock data +mock_csv <- create_mock_data(..., source_format = "csv") + +# Test your date parsing logic +harmonized <- mock_csv %>% + mutate(interview_date = as.Date(interview_date, format = "%Y-%m-%d")) +``` + +See [Date variables and temporal data](dates.html#source-format-simulating-raw-data-imports) for detailed examples. + +**Alternative approach using `date_start`/`date_end` columns:** + +``` csv +variable,recStart,recEnd,date_start,date_end,proportion +death_date,NA,date_start,2001-01-01,,1.0 +death_date,NA,date_end,,2017-03-31,1.0 +``` + +Both metadata approaches (SAS format in `recStart` vs. `date_start`/`date_end` columns) work with all `source_format` options. + +## Proportions + +### Basic rules + +1. **Must sum to 1.0 per variable** (excluding garbage rows) +2. **Garbage proportions are separate** from valid/missing proportions +3. **Applies to population before garbage** is added + +### Categorical variables + +``` csv +variable,recStart,recEnd,catLabel,proportion +smoking,1,1,Daily,0.25 +smoking,2,2,Occasional,0.15 +smoking,3,3,Never,0.55 +smoking,999,NA::b,Missing,0.05 +``` + +**Sum check:** 0.25 + 0.15 + 0.55 + 0.05 = 1.0 ✓ + +### Continuous variables + +``` csv +variable,recStart,recEnd,catLabel,proportion +age,[18,100],copy,Valid age,0.95 +age,999,NA::b,Missing,0.05 +``` + +**Interpretation:** + +- 95% of values: sampled uniformly from \[18, 100\] +- 5% of values: set to 999, then converted to NA + +### With garbage + +``` csv +variable,recStart,recEnd,catLabel,proportion +age,[18,100],copy,Valid age,0.95 +age,999,NA::b,Missing,0.05 +age,[200,300],corrupt_high,Invalid,0.02 +``` + +**Process:** + +1. Generate population: 95% valid (18-100), 5% missing (999→NA) +2. Apply garbage: Replace 2% of valid values with corrupt_high (200-300) + +**Result:** \~93% valid, \~5% missing, \~2% garbage + +## Validation rules + +### Configuration file validation + +**Checked by `validate_mock_data_config()`:** + +1. Required columns present: `variable`, `variableType`, `variableLabel` +2. `variableType` must be one of: `"categorical"`, `"continuous"`, `"date"` +3. No duplicate variable names +4. No empty variable names + +### Details file validation + +**Checked by `validate_mock_data_config_details()`:** + +1. Required columns present: `variable`, `recStart`, `recEnd`, `catLabel`, `proportion` +2. All variables in details exist in config file +3. Proportions are numeric and between 0 and 1 +4. Proportions sum to 1.0 per variable (excluding garbage rows) +5. No duplicate `recStart` values per variable +6. Range notation is well-formed +7. Special codes are valid + +### Cross-file validation + +**Checked during generation:** + +1. Every variable in config has at least one row in details +2. Variable types match usage (e.g., date variables use date_start/date_end) +3. Garbage rows have valid proportion values +4. Date ranges are valid dates + +## Common patterns + +### Pattern 1: Simple categorical + +``` csv +# Config +uid,variable,role,variableType,variableLabel,position +sex_v1,sex,enabled,categorical,Biological sex,1 + +# Details +uid,uid_detail,variable,recStart,recEnd,catLabel,proportion,rType +sex_v1,sex_v1_d1,sex,1,1,Male,0.48,factor +sex_v1,sex_v1_d2,sex,2,2,Female,0.52,factor +``` + +### Pattern 2: Continuous with missing + +``` csv +# Config +uid,variable,role,variableType,variableLabel,variableUnit,position +bmi_v1,bmi,enabled,continuous,Body mass index,kg/m²,1 + +# Details +uid,uid_detail,variable,recStart,recEnd,catLabel,proportion,rType +bmi_v1,bmi_v1_d1,bmi,[15,50],copy,Valid BMI,0.95,double +bmi_v1,bmi_v1_d2,bmi,999,NA::b,Missing,0.05,double +``` + +### Pattern 3: Date variable with range + +``` csv +# Config +uid,variable,role,variableType,variableLabel,position +index_date_v1,index_date,index-date,continuous,Cohort entry date,1 + +# Details +uid,uid_detail,variable,recStart,recEnd,catLabel,date_start,date_end,proportion,rType +index_date_v1,index_date_v1_d1,index_date,NA,date_start,Start,2001-01-01,,1.0,Date +index_date_v1,index_date_v1_d2,index_date,NA,date_end,End,,2017-03-31,1.0,Date +``` + +### Pattern 4: With data quality issues + +``` csv +# Config +uid,variable,role,variableType,variableLabel,position +age_v1,age,enabled,continuous,Age in years,1 + +# Details +uid,uid_detail,variable,recStart,recEnd,catLabel,proportion,rType +age_v1,age_v1_d1,age,[18,100],copy,Valid age,0.93,integer +age_v1,age_v1_d2,age,999,NA::b,Missing,0.05,integer +age_v1,age_v1_d3,age,[150,250],corrupt_high,Too high,0.01,integer +age_v1,age_v1_d4,age,[-5,0],corrupt_low,Negative,0.01,integer +``` + +## Complete example + +Here's a complete two-file configuration for a simple cohort study: + +**mock_data_config.csv:** + +``` csv +uid,variable,role,variableType,variableLabel,variableUnit,position +person_id_v1,person_id,enabled,continuous,Person ID,,1 +age_v1,age,enabled,continuous,Age at baseline,years,2 +sex_v1,sex,enabled,categorical,Biological sex,,3 +smoking_v1,smoking,enabled,categorical,Smoking status,,4 +index_date_v1,index_date,index-date,continuous,Cohort entry date,,5 +death_date_v1,death_date,outcome-date,continuous,Death date,,6 +``` + +**mock_data_config_details.csv:** + +``` csv +uid,uid_detail,variable,recStart,recEnd,catLabel,date_start,date_end,proportion,rType +person_id_v1,person_id_v1_d1,person_id,[1,100000],copy,Person ID,,,1.0,integer +age_v1,age_v1_d1,age,[18,100],copy,Valid age,,,0.93,integer +age_v1,age_v1_d2,age,999,NA::b,Missing,,,0.05,integer +age_v1,age_v1_d3,age,[150,200],corrupt_high,Invalid age,,,0.02,integer +sex_v1,sex_v1_d1,sex,1,1,Male,,,0.48,factor +sex_v1,sex_v1_d2,sex,2,2,Female,,,0.52,factor +smoking_v1,smoking_v1_d1,smoking,1,1,Daily,,,0.25,factor +smoking_v1,smoking_v1_d2,smoking,2,2,Occasional,,,0.15,factor +smoking_v1,smoking_v1_d3,smoking,3,3,Never,,,0.55,factor +smoking_v1,smoking_v1_d4,smoking,999,NA::b,Missing,,,0.05,factor +index_date_v1,index_date_v1_d1,index_date,NA,date_start,Start,2001-01-01,,1.0,Date +index_date_v1,index_date_v1_d2,index_date,NA,date_end,End,,2017-03-31,1.0,Date +death_date_v1,death_date_v1_d1,death_date,NA,date_start,Start,2001-01-01,,1.0,Date +death_date_v1,death_date_v1_d2,death_date,NA,date_end,End,,2025-12-31,1.0,Date +``` + +**Generate the data:** + +``` r +library(MockData) + +mock_data <- create_mock_data( + config_path = "mock_data_config.csv", + details_path = "mock_data_config_details.csv", + n = 1000, + seed = 123 +) +``` + +## See also + +- [Getting started](getting-started.html) - Tutorial for creating your first mock dataset +- [User guide](user-guide.html) - Complete feature documentation +- [Advanced topics](advanced-topics.html) - Technical details and edge cases \ No newline at end of file diff --git a/vignettes/styles.css b/vignettes/styles.css new file mode 100644 index 0000000..6e83658 --- /dev/null +++ b/vignettes/styles.css @@ -0,0 +1,7 @@ +/* Styling for inline R output - wrapped with .r-output class */ +.r-output code { + background-color: #fffbf0; + padding: 0.1em 0.3em; + border-radius: 3px; + border: none; +} diff --git a/vignettes/tutorial-config-files.qmd b/vignettes/tutorial-config-files.qmd new file mode 100644 index 0000000..b8b6841 --- /dev/null +++ b/vignettes/tutorial-config-files.qmd @@ -0,0 +1,686 @@ +--- +title: "Generating datasets from configuration files" +format: html +vignette: > + %\VignetteIndexEntry{Generating datasets from configuration files} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} +--- + +```{r} +#| label: setup +#| include: false +# Load package - works in both local dev and pkgdown build +if (file.exists("../DESCRIPTION")) { + devtools::load_all("../", quiet = TRUE) +} else { + library(MockData) +} +``` + +
+**About this vignette:** This tutorial demonstrates the metadata-driven approach to batch mock data generation. All examples use executable code with real metadata files. +
+ +## Why configuration files? + +MockData takes a **metadata-driven approach** that differs from other synthetic data packages: + +**Most synthetic data packages**: Specify distributions directly in code + +```r +# Typical approach in other packages +synthetic_data <- generate_data( + age = normal(mean = 55, sd = 15), + smoking = categorical(probs = c(0.3, 0.5, 0.2)) +) +``` + +**MockData**: Define data structure in metadata files, reuse for both harmonization and mock data generation + +```r +# MockData approach +mock_data <- create_mock_data( + config_path = "variables.csv", + details_path = "variable_details.csv", + n = 1000 +) +``` + +**Benefits of the metadata-driven approach:** + +- **Reuse existing recodeflow metadata** - No need to duplicate variable definitions +- **Single source of truth** - Variable structure defined once, used everywhere +- **Consistency with harmonization** - Mock data matches real data structure exactly +- **Easy to maintain** - Update metadata once, affects both harmonization and mock data +- **Version control friendly** - Metadata files work well with git + +**When to use configuration files:** + +- Many variables to generate (5+) +- Existing recodeflow metadata from harmonization projects +- Need to match published descriptive statistics ("Table 1") +- Reproducible workflows with version-controlled metadata + +**Alternative approach**: For learning or working with just a few variables, see [Getting started](getting-started.html) for the variable-by-variable approach. + +## Setup + +```{r} +#| warning: false +#| message: false +library(dplyr) +library(MockData) +``` + +## Quick reference: Configuration columns + +This tutorial will show you how to use these columns step-by-step. Here's a quick reference for later: + +**Configuration file (`variables.csv`):** + +| Column | Required | Description | Examples | +|--------|----------|-------------|----------| +| `uid` | Yes | Unique identifier for variable definition | "smoking_v1", "age_v1" | +| `variable` | Yes | Variable name (output column name) | "smoking", "age", "birth_date" | +| `role` | Yes | "enabled" to generate; for dates use "baseline-date", "index-date" | "enabled", "baseline-date" | +| `variableType` | Yes | "categorical" or "continuous" (dates use "continuous") | "categorical", "continuous" | +| `variableLabel` | No | Human-readable description | "Smoking status", "Age in years" | +| `position` | Yes | Generation order (1 = first, 2 = second, etc.) | 1, 2, 3 | + +**Details file (`variable_details.csv`):** + +| Column | Required | Description | Examples | +|--------|----------|-------------|----------| +| `uid` | Yes | Must match config uid | "smoking_v1" | +| `uid_detail` | Yes | Unique identifier for this row | "smoking_v1_d1" | +| `variable` | Yes | Must match config variable | "smoking" | +| `recStart` | Yes | Input value or range | "1", "[18,100]", "[1950-01-01, 2000-12-31]" | +| `recEnd` | Yes | Output transformation | "copy", "1", "999", "corrupt_high" | +| `catLabel` | No | Short category label | "Daily smoker", "Missing" | +| `catLabelLong` | No | Long category description | "Smokes daily" | +| `proportion` | No | Proportion for this category (must sum to 1.0) | 0.28, 0.05 | +| `rType` | No | R data type for output | "integer", "factor", "Date", "double" | + +**Common `recEnd` values:** + +- `"copy"` - Pass through value from recStart (use for ranges like "[18,100]") +- Same as recStart - Output specific value (e.g., "1", "2", "999") +- `"corrupt_high"` / `"corrupt_low"` - Generate garbage data in specified range +- `"mean"` / `"sd"` - Specify normal distribution parameters (advanced) + +## Your first configuration file + +Let's start with the simplest possible example: a single categorical variable. This shows the basic pattern you'll use for all variables. + +### Step 1: Create config for one variable + +The configuration file lists which variables to generate: + +```{r} +# Start with just smoking status +config <- data.frame( + uid = "smoking_v1", + variable = "smoking", + role = "enabled", + variableType = "categorical", + variableLabel = "Smoking status", + position = 1, + stringsAsFactors = FALSE +) +``` + +**Configuration table** (`r nrow(config)` row): + +```{r} +#| echo: false +knitr::kable(config) +``` + +**Key columns:** + +- `uid`: Unique identifier for this variable definition +- `variable`: Variable name (becomes column name in output) +- `role`: Set to "enabled" to generate this variable (for dates, use role like "baseline-date") +- `variableType`: "categorical" or "continuous" (dates use "continuous" + role for recodeflow compatibility) +- `position`: Order in which variables are generated (1 = first, 2 = second, etc.) + +**Note on `stringsAsFactors = FALSE`:** This R parameter prevents automatic conversion of character columns to factors when creating data frames. Always set this to FALSE to preserve the exact data types you specify. + +### Step 2: Define the categories + +The details file specifies what values this variable can have: + +```{r} +# Define the three categories +details <- data.frame( + uid = c("smoking_v1", "smoking_v1", "smoking_v1"), + uid_detail = c("smoking_v1_d1", "smoking_v1_d2", "smoking_v1_d3"), + variable = c("smoking", "smoking", "smoking"), + recStart = c("1", "2", "3"), + recEnd = c("1", "2", "3"), + catLabel = c("Daily smoker", "Occasional smoker", "Never smoked"), + catLabelLong = c("Smokes daily", "Smokes occasionally", "Never smoked"), + stringsAsFactors = FALSE +) +``` + +**Details table** (`r nrow(details)` rows): + +```{r} +#| echo: false +knitr::kable(details) +``` + +**Key columns:** + +- `uid`: Must match the uid in config file +- `uid_detail`: Unique identifier for this detail row +- `variable`: Must match the variable name in config +- `recStart`: The input value or range + - For categorical: Category codes like "1", "2", "3" + - For continuous: Ranges like "[18, 100]" or missing codes like "999" + - For dates: Date ranges like "[1950-01-01, 2000-12-31]" +- `recEnd`: The output transformation + - "copy" = pass through the value from recStart + - Same as recStart = output the specific value (e.g., "1", "999") + - "corrupt_high" / "corrupt_low" = generate garbage data +- `catLabel`: Short label for this category +- `proportion`: Optional proportion for this category (must sum to 1.0 within each variable) +- `rType`: Optional R data type for output (e.g., "integer", "factor", "Date") + +### Step 3: Generate your first mock dataset + +```{r} +# create_mock_data() reads CSV files, so we need to save our data.frames first +temp_config <- tempfile(fileext = ".csv") +temp_details <- tempfile(fileext = ".csv") +write.csv(config, temp_config, row.names = FALSE) +write.csv(details, temp_details, row.names = FALSE) + +# Generate 100 observations +mock_data <- create_mock_data( + config_path = temp_config, # Path to configuration CSV + details_path = temp_details, # Path to variable details CSV + n = 100, # Number of observations to generate + seed = 123, # Random seed for reproducibility + verbose = FALSE # Suppress progress messages +) + +# Clean up temp files +unlink(c(temp_config, temp_details)) + +# View the data +head(mock_data, 10) +table(mock_data$smoking) +``` + +**`create_mock_data()` parameters:** + +- `config_path`: Path to CSV file listing which variables to generate +- `details_path`: Path to CSV file specifying variable structure (categories, ranges, proportions) +- `n`: Number of observations (rows) to generate +- `seed`: Random seed for reproducibility - same seed always produces identical data +- `verbose`: Set to FALSE to suppress informational messages during generation (useful for cleaner output in reports) +- `validate`: Optional, defaults to TRUE - validates metadata before generation + +**What happened:** + +- MockData read both files to understand the variable structure +- Generated 100 random values from {1, 2, 3} with uniform distribution +- Returned a data frame with one column: `smoking` + +## Controlling proportions: The "Table 1" use case + +Research papers typically include a "Table 1" with descriptive statistics. MockData lets you generate data that matches these published statistics. + +**Example scenario**: A paper reports smoking prevalence in their cohort: + +- Daily smokers: 28% +- Occasional smokers: 18% +- Never smokers: 54% + +Let's generate mock data that matches these proportions: + +```{r} +# Add proportion column to match published statistics +details_with_props <- data.frame( + uid = c("smoking_v1", "smoking_v1", "smoking_v1"), + uid_detail = c("smoking_v1_d1", "smoking_v1_d2", "smoking_v1_d3"), + variable = c("smoking", "smoking", "smoking"), + recStart = c("1", "2", "3"), + recEnd = c("1", "2", "3"), + catLabel = c("Daily smoker", "Occasional smoker", "Never smoked"), + catLabelLong = c("Smokes daily", "Smokes occasionally", "Never smoked"), + proportion = c(0.28, 0.18, 0.54), # Match published prevalence + stringsAsFactors = FALSE +) + +# Save to temporary files +temp_config <- tempfile(fileext = ".csv") +temp_details <- tempfile(fileext = ".csv") +write.csv(config, temp_config, row.names = FALSE) +write.csv(details_with_props, temp_details, row.names = FALSE) + +# Generate data matching these proportions +mock_data_table1 <- create_mock_data( + config_path = temp_config, + details_path = temp_details, + n = 1000, # Larger sample for better proportion match + seed = 123, + verbose = FALSE +) + +# Clean up +unlink(c(temp_config, temp_details)) + +# Verify proportions +prop.table(table(mock_data_table1$smoking)) +``` + +**Key insight:** Proportions must sum to 1.0 for each variable. MockData samples according to these proportions, making it easy to match published descriptive statistics. + +## Adding a second variable + +Now let's expand our config to include age alongside smoking: + +### Step 1: Update config file + +```{r} +# Add age to config +config_multi <- data.frame( + uid = c("smoking_v1", "age_v1"), + variable = c("smoking", "age"), + role = c("enabled", "enabled"), + variableType = c("categorical", "continuous"), + variableLabel = c("Smoking status", "Age in years"), + position = c(1, 2), + stringsAsFactors = FALSE +) +``` + +**Multi-variable configuration** (`r nrow(config_multi)` rows): + +```{r} +#| echo: false +knitr::kable(config_multi) +``` + +### Step 2: Add age to details + +```{r} +# Add age details (range + missing code) +# Build smoking details first +smoking_details <- data.frame( + uid = rep("smoking_v1", 3), + uid_detail = c("smoking_v1_d1", "smoking_v1_d2", "smoking_v1_d3"), + variable = rep("smoking", 3), + recStart = c("1", "2", "3"), + recEnd = c("1", "2", "3"), + catLabel = c("Daily smoker", "Occasional smoker", "Never smoked"), + catLabelLong = c("Smokes daily", "Smokes occasionally", "Never smoked"), + proportion = c(0.28, 0.18, 0.54), + rType = rep("factor", 3), + stringsAsFactors = FALSE +) + +# Build age details +age_details <- data.frame( + uid = rep("age_v1", 2), + uid_detail = c("age_v1_d1", "age_v1_d2"), + variable = rep("age", 2), + recStart = c("[18, 100]", "999"), + recEnd = c("copy", "999"), + catLabel = c("Age in years", "Missing"), + catLabelLong = c("Age in years", "Not stated"), + proportion = c(0.95, 0.05), + rType = rep("integer", 2), + stringsAsFactors = FALSE +) + +# Combine +details_multi <- rbind(smoking_details, age_details) +``` + +**Combined details table** (`r nrow(details_multi)` rows): + +```{r} +#| echo: false +knitr::kable(details_multi) +``` + +**Note**: Added `rType` column to specify output types (factor for smoking, integer for age). + +### Step 3: Generate multi-variable dataset + +```{r} +# Save to temporary files +temp_config <- tempfile(fileext = ".csv") +temp_details <- tempfile(fileext = ".csv") +write.csv(config_multi, temp_config, row.names = FALSE) +write.csv(details_multi, temp_details, row.names = FALSE) + +# Generate 1000 observations +mock_data_multi <- create_mock_data( + config_path = temp_config, + details_path = temp_details, + n = 1000, + seed = 123, + verbose = FALSE +) + +# Clean up +unlink(c(temp_config, temp_details)) + +# View first 10 rows +head(mock_data_multi, 10) +``` + +**What happened:** + +- MockData generated 2 variables in one call +- `smoking`: Factor with 3 levels, distributed according to proportions +- `age`: Integer values between 18-100, with 5% missing (code 999) +- Both variables respect the specified `rType` + +### Step 4: Verify the results + +**Smoking distribution:** + +```{r} +#| echo: false +knitr::kable(as.data.frame(prop.table(table(mock_data_multi$smoking))), + col.names = c("Category", "Proportion")) +``` + +**Age summary:** + +```{r} +#| echo: false +age_summary <- summary(mock_data_multi$age) +knitr::kable(data.frame(Statistic = names(age_summary), Value = as.numeric(age_summary))) +``` + +```{r} +#| echo: false +# Check data types +smoking_class <- class(mock_data_multi$smoking) +age_type <- typeof(mock_data_multi$age) + +# Check missing data +smoking_na <- sum(is.na(mock_data_multi$smoking)) +age_missing <- sum(mock_data_multi$age == 999, na.rm = TRUE) +``` + +**Data types:** + +- Smoking: `r smoking_class` +- Age: `r age_type` + +**Missing values:** + +- Smoking: `r smoking_na` / 1000 +- Age: `r age_missing` / 1000 + +**Expected results:** + +- Smoking: ~28% daily, ~18% occasional, ~54% never (close to specified proportions) +- Age: Integer values between 18-100, approximately 5% coded as 999 +- Smoking is a factor, age is integer + +## Working with date variables + +Date variables follow a special pattern for compatibility with recodeflow metadata: + +- `variableType = "continuous"` (dates are stored as numbers in recodeflow) +- `role` contains "date" (e.g., "index-date", "baseline-date") +- `rType = "Date"` in details (specifies R Date class) + +Let's add a birth date variable to our dataset: + +```{r} +# Add birth_date to config +config_with_date <- rbind( + config_multi, + data.frame( + uid = "birth_date_v1", + variable = "birth_date", + role = "baseline-date", # Role identifies this as a date + variableType = "continuous", # Dates are continuous in recodeflow + variableLabel = "Date of birth", + position = 3, + stringsAsFactors = FALSE + ) +) + +# Build date details +date_details <- data.frame( + uid = rep("birth_date_v1", 1), + uid_detail = c("birth_date_v1_d1"), + variable = rep("birth_date", 1), + recStart = c("[1950-01-01, 2000-12-31]"), # Date range + recEnd = c("copy"), + catLabel = c("Birth date"), + catLabelLong = c("Date of birth"), + proportion = c(1.0), + rType = rep("Date", 1), # Output as R Date class + stringsAsFactors = FALSE +) + +# Combine all details +details_with_date <- rbind(details_multi, date_details) + +# Save and generate +temp_config <- tempfile(fileext = ".csv") +temp_details <- tempfile(fileext = ".csv") +write.csv(config_with_date, temp_config, row.names = FALSE) +write.csv(details_with_date, temp_details, row.names = FALSE) + +mock_data_with_date <- create_mock_data( + config_path = temp_config, + details_path = temp_details, + n = 100, + seed = 123, + verbose = FALSE +) + +unlink(c(temp_config, temp_details)) + +# View results +head(mock_data_with_date, 10) +``` + +**What happened:** + +- MockData detected the date variable by checking `role` for "date" +- Generated random dates between 1950-01-01 and 2000-12-31 +- Applied `rType = "Date"` to return R Date objects (not numbers) + +```{r} +#| echo: false +# Verify date properties +cols_list <- paste(names(mock_data_with_date), collapse = ", ") + +if ("birth_date" %in% names(mock_data_with_date)) { + date_class <- class(mock_data_with_date$birth_date) + date_min <- as.character(min(mock_data_with_date$birth_date)) + date_max <- as.character(max(mock_data_with_date$birth_date)) + has_birth_date <- TRUE +} else { + has_birth_date <- FALSE +} +``` + +**Verification:** + +- Columns: `r cols_list` +- `r if(has_birth_date) paste0("Date class: ", date_class, ", Date range: ", date_min, " to ", date_max) else "Note: birth_date column not found in output"` + +**Key insight:** This pattern maintains compatibility with recodeflow (where dates are `variableType = "continuous"`) while allowing MockData to generate proper Date objects using `rType`. + +## Adding data quality issues (garbage data) + +Real datasets have garbage values (data entry errors, out-of-range values). MockData can simulate these for testing data validation pipelines. + +```{r} +# Add garbage rows to details +details_with_garbage <- rbind( + details_multi, + data.frame( + uid = "age_v1", + uid_detail = "age_v1_d3", + variable = "age", + recStart = "[200, 300]", + recEnd = "corrupt_high", + catLabel = "Data entry error", + catLabelLong = "Impossible age value", + proportion = 0.02, + rType = "integer", + stringsAsFactors = FALSE + ) +) + +# Note: proportions will be automatically normalized to sum to 1.0 + +# Save to temporary files +temp_config <- tempfile(fileext = ".csv") +temp_details <- tempfile(fileext = ".csv") +write.csv(config_multi, temp_config, row.names = FALSE) +write.csv(details_with_garbage, temp_details, row.names = FALSE) + +# Regenerate with garbage +mock_data_dirty <- create_mock_data( + config_path = temp_config, + details_path = temp_details, + n = 1000, + seed = 123, + verbose = FALSE +) + +# Clean up +unlink(c(temp_config, temp_details)) + +# Find garbage values +garbage_count <- sum(mock_data_dirty$age > 100 & mock_data_dirty$age < 999, na.rm = TRUE) +example_garbage <- head(mock_data_dirty$age[mock_data_dirty$age > 100 & mock_data_dirty$age < 999], 5) +``` + +**Garbage data summary:** + +- Garbage values found: `r garbage_count` / 1000 +- Example garbage ages: `r paste(example_garbage, collapse = ", ")` + +**What happened:** + +- Added `corrupt_high` specification with range [200, 300] +- MockData adjusted proportions so all rows sum to 1.0 +- Generated ~2% garbage values for testing data cleaning pipelines + +**Common garbage types:** + +- `corrupt_low`: Values below valid range +- `corrupt_high`: Values above valid range +- `corrupt_future`: Dates in the future (for date variables) +- `corrupt_past`: Dates too far in the past (for date variables) + +See [Garbage data documentation](cchs-example.html#garbage-data) for complete specifications. + +## Working with existing recodeflow metadata + +For real projects, you'll reuse existing harmonization metadata. MockData works with the same files used by recodeflow: + +```{r} +# Load DemPoRT example configuration (from recodeflow) +config_file <- system.file( + "extdata/demport/variables_DemPoRT.csv", + package = "MockData" +) +details_file <- system.file( + "extdata/demport/variable_details_DemPoRT.csv", + package = "MockData" +) + +# Read configuration +demport_config <- read.csv(config_file, stringsAsFactors = FALSE, check.names = FALSE) +demport_details <- read.csv(details_file, stringsAsFactors = FALSE, check.names = FALSE) + +# See what variables are available +first_10_vars <- head(demport_config$variable, 10) +n_vars <- nrow(demport_config) +n_details <- nrow(demport_details) +``` + +**DemPoRT variables (first 10):** + +`r paste(first_10_vars, collapse = ", ")` + +- Total variables: `r n_vars` +- Details rows: `r n_details` + +**Key insight:** These are the same metadata files used for harmonization. By reusing them for mock data generation, you ensure consistency between mock and real data structures. + +**Typical workflow:** + +1. Define variables and harmonization rules in recodeflow +2. Use the same metadata to generate mock data for testing +3. Develop analysis pipelines with mock data +4. Apply to real data once pipelines are validated + +## Saving and loading configurations + +For reproducible workflows, save your configurations as CSV files. This makes them version-controllable and shareable: + +```{r} +#| eval: false + +# Save configuration to CSV +write.csv(config_multi, "my_mock_data_config.csv", row.names = FALSE) +write.csv(details_multi, "my_mock_data_config_details.csv", row.names = FALSE) + +# Later, load and regenerate identical data +# Same seed produces identical mock data +mock_data <- create_mock_data( + config_path = "my_mock_data_config.csv", + details_path = "my_mock_data_config_details.csv", + n = 1000, + seed = 123 +) +``` + +**Benefits of saving to CSV:** + +- Version control with git +- Share configurations with collaborators +- Audit trail for what mock data was generated +- Easy to update and maintain + +## What you learned + +In this tutorial, you learned: + +- **Why metadata-driven**: MockData's unique approach reuses harmonization metadata +- **Seeding configs**: Start simple (one variable) then build complexity +- **Table 1 matching**: Use proportions to match published descriptive statistics +- **Multi-variable generation**: Batch generation with `create_mock_data()` +- **Data quality simulation**: Add missing codes and garbage values +- **Recodeflow integration**: Reuse existing harmonization metadata +- **Reproducibility**: Save configurations and use seeds for identical results + +## Next steps + +**Core concepts:** + +- [Getting started](getting-started.html) - Variable-by-variable approach for learning +- [Missing data](missing-data.html) - Detailed missing data patterns +- [Date variables](dates.html) - Working with dates and survival times + +**Real-world examples:** + +- [CCHS example](cchs-example.html) - Canadian Community Health Survey workflow +- [CHMS example](chms-example.html) - Canadian Health Measures Survey workflow +- [DemPoRT example](demport-example.html) - Survival analysis with competing risks + +**Advanced:** + +- [Configuration reference](reference-config.html) - Complete configuration specification +- [Advanced topics](advanced-topics.html) - Performance and integration diff --git a/vignettes/tutorial-dates.qmd b/vignettes/tutorial-dates.qmd new file mode 100644 index 0000000..44f82b6 --- /dev/null +++ b/vignettes/tutorial-dates.qmd @@ -0,0 +1,558 @@ +--- +title: "Working with date variables" +format: html +vignette: > + %\VignetteIndexEntry{Working with date variables} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} +--- + +```{r} +#| label: setup +#| include: false +# Load package - works in both local dev and pkgdown build +if (file.exists("../DESCRIPTION")) { + devtools::load_all("../", quiet = TRUE) +} else { + library(MockData) +} +``` + +
+**About this vignette:** This tutorial introduces temporal data generation concepts. For complete working examples, see the [DemPoRT example](demport-example.html). +
+ +## Overview + +This tutorial introduces temporal data generation in MockData. You'll learn how to create date variables for: + +- **Cohort entry dates** (index dates, baseline dates) +- **Event dates** (death, diagnosis, hospital admission) +- **Time-varying exposures** (follow-up visits, repeated measures) +- **Survival analysis data** (with censoring) + +**For complete working examples:** See the [DemPoRT example](demport-example.html), which is the primary and comprehensive demonstration of date variable generation with real ICES specifications. + +## Basic date variable setup + +### Configuration structure + +Date variables use the same two-file structure as other variables, with special `recEnd` codes: + +**mock_data_config.csv:** + +| uid | variable | role | variableType | variableLabel | position | +|-----|----------|------|--------------|---------------|----------| +| index_date_v1 | index_date | index-date;enabled | Continuous | Cohort entry date | 1 | + +**mock_data_config_details.csv:** + +| uid | uid_detail | variable | recStart | recEnd | catLabel | date_start | date_end | rType | +|-----|------------|----------|----------|--------|----------|------------|----------|-------| +| index_date_v1 | index_date_v1_d1 | index_date | NA | date_start | Start date | 2001-01-01 | | Date | +| index_date_v1 | index_date_v1_d2 | index_date | NA | date_end | End date | | 2017-03-31 | Date | + +**Key points:** + +- Use `recEnd = "date_start"` to mark the row containing start date +- Use `recEnd = "date_end"` to mark the row containing end date +- Dates in `date_start` and `date_end` columns use ISO format: YYYY-MM-DD +- Date variables need `rType = "Date"` in details +- Date variables use `role` containing "date" (e.g., "index-date", "outcome-date") +- `variableType = "Continuous"` for date variables (for recodeflow compatibility) + +### Generating date variables + +```{r} +#| warning: false +#| message: false +library(dplyr) +library(MockData) + +# Create configuration +config <- data.frame( + uid = "index_date_v1", + variable = "index_date", + role = "index-date,enabled", + variableType = "Continuous", + position = 1, + stringsAsFactors = FALSE +) + +details <- data.frame( + uid = c("index_date_v1", "index_date_v1"), + uid_detail = c("index_date_v1_d1", "index_date_v1_d2"), + variable = c("index_date", "index_date"), + recStart = c(NA, NA), + recEnd = c("date_start", "date_end"), + catLabel = c("Start date", "End date"), + date_start = c("2001-01-01", NA), + date_end = c(NA, "2017-03-31"), + rType = c("Date", "Date"), + stringsAsFactors = FALSE +) + +# Write to temporary files +temp_dir <- tempdir() +config_path <- file.path(temp_dir, "date_config.csv") +details_path <- file.path(temp_dir, "date_details.csv") +write.csv(config, config_path, row.names = FALSE) +write.csv(details, details_path, row.names = FALSE) + +# Generate dates +mock_data <- create_mock_data( + config_path = config_path, + details_path = details_path, + n = 100, + seed = 123 +) + +# View distribution +head(mock_data) +summary(mock_data$index_date) +``` + +**Result:** 100 dates uniformly distributed between 2001-01-01 and 2017-03-31. + +## Common temporal patterns + +### Pattern 1: Cohort accrual period + +Simulate gradual enrollment into a study: + +**Concept:** Participants enter a cohort over a defined accrual period. In real studies, enrollment might be: + +- Uniform: constant enrollment rate +- Front-loaded: more enrollments early +- Back-loaded: more enrollments later + +**MockData approach:** Use uniform distribution within accrual window. For non-uniform patterns, generate uniform dates then transform with custom code. + +**Example accrual window:** + +| uid | uid_detail | variable | recStart | recEnd | catLabel | date_start | date_end | rType | +|-----|------------|----------|----------|--------|----------|------------|----------|-------| +| index_date_v1 | index_date_v1_d1 | index_date | NA | date_start | Start | 2001-01-01 | | Date | +| index_date_v1 | index_date_v1_d2 | index_date | NA | date_end | End | | 2005-12-31 | Date | + +This creates a 5-year accrual period (2001-2005). + +### Pattern 2: Event dates with censoring + +Survival analysis requires: + +1. **Index date** (t=0, cohort entry) +2. **Event date** (death, diagnosis) OR censoring date +3. **Follow-up end** (administrative censoring) + +**Configuration pattern:** + +**mock_data_config.csv:** + +| uid | variable | role | variableType | variableLabel | position | +|-----|----------|------|--------------|---------------|----------| +| index_date_v1 | index_date | index-date;enabled | Continuous | Cohort entry | 1 | +| death_date_v1 | death_date | outcome-date;enabled | Continuous | Death or censoring date | 2 | + +**mock_data_config_details.csv:** + +| uid | uid_detail | variable | recStart | recEnd | catLabel | date_start | date_end | rType | +|-----|------------|----------|----------|--------|----------|------------|----------|-------| +| index_date_v1 | index_date_v1_d1 | index_date | NA | date_start | Start | 2001-01-01 | | Date | +| index_date_v1 | index_date_v1_d2 | index_date | NA | date_end | End | | 2005-12-31 | Date | +| death_date_v1 | death_date_v1_d1 | death_date | NA | date_start | Start | 2001-01-01 | | Date | +| death_date_v1 | death_date_v1_d2 | death_date | NA | date_end | End | | 2025-12-31 | Date | + +**Important:** `death_date` range extends beyond accrual (2001-2025) to allow for follow-up time. + +After generation, calculate: + +``` r +# Time-to-event (days) +time <- as.numeric(difftime(mock_data$death_date, mock_data$index_date, units = "days")) + +# Event indicator (1 = death, 0 = censored) +# In real data, you'd have a separate event_type variable +# For mock data, assume all events within study period are deaths +event <- ifelse(mock_data$death_date <= as.Date("2020-12-31"), 1, 0) + +# Add to dataset +mock_data$time <- time +mock_data$event <- event +``` + +**See [DemPoRT example](demport-example.html) for complete survival analysis setup.** + +### Pattern 3: Multiple time points + +Longitudinal studies with repeated measures: + +**mock_data_config.csv:** + +| uid | variable | role | variableType | variableLabel | position | +|-----|----------|------|--------------|---------------|----------| +| baseline_date_v1 | baseline_date | index-date;enabled | Continuous | Baseline interview | 1 | +| followup1_date_v1 | followup1_date | followup-date;enabled | Continuous | 6-month follow-up | 2 | +| followup2_date_v1 | followup2_date | followup-date;enabled | Continuous | 12-month follow-up | 3 | + +**mock_data_config_details.csv:** + +| uid | uid_detail | variable | recStart | recEnd | catLabel | date_start | date_end | rType | +|-----|------------|----------|----------|--------|----------|------------|----------|-------| +| baseline_date_v1 | baseline_date_v1_d1 | baseline_date | NA | date_start | Start | 2010-01-01 | | Date | +| baseline_date_v1 | baseline_date_v1_d2 | baseline_date | NA | date_end | End | | 2012-12-31 | Date | +| followup1_date_v1 | followup1_date_v1_d1 | followup1_date | NA | date_start | Start | 2010-07-01 | | Date | +| followup1_date_v1 | followup1_date_v1_d2 | followup1_date | NA | date_end | End | | 2013-06-30 | Date | +| followup2_date_v1 | followup2_date_v1_d1 | followup2_date | NA | date_start | Start | 2011-01-01 | | Date | +| followup2_date_v1 | followup2_date_v1_d2 | followup2_date | NA | date_end | End | | 2013-12-31 | Date | + +**Post-processing:** Ensure proper temporal ordering: + +``` r +# After generation, you may need to adjust follow-up dates +# to ensure they occur after baseline (MockData generates independently) + +# Example: Add fixed intervals to baseline +mock_data$followup1_date <- mock_data$baseline_date + 180 # +6 months +mock_data$followup2_date <- mock_data$baseline_date + 365 # +12 months +``` + +**Note:** MockData generates each date variable independently. For dependent dates (e.g., follow-up must be after baseline), generate the anchor date (baseline) in MockData, then calculate derived dates in your code. + +### Pattern 4: Missing event dates + +Not all participants have events (e.g., not everyone dies during follow-up): + +**Approach:** Date variables in v0.2 don't support missing data patterns directly. Instead: + +1. Generate all dates in valid range +2. Add separate indicator variable for event occurrence +3. Set event dates to NA for non-events in post-processing + +**Example:** + +``` r +# Configuration +config <- data.frame( + uid = c("index_date_v1", "death_date_v1", "death_occurred_v1"), + variable = c("index_date", "death_date", "death_occurred"), + role = c("index-date,enabled", "outcome-date,enabled", "enabled"), + variableType = c("Continuous", "Continuous", "Categorical"), + position = c(1, 2, 3), + stringsAsFactors = FALSE +) + +details <- data.frame( + uid = c("index_date_v1", "index_date_v1", + "death_date_v1", "death_date_v1", + "death_occurred_v1", "death_occurred_v1"), + uid_detail = c("index_date_v1_d1", "index_date_v1_d2", + "death_date_v1_d1", "death_date_v1_d2", + "death_occurred_v1_d1", "death_occurred_v1_d2"), + variable = c("index_date", "index_date", + "death_date", "death_date", + "death_occurred", "death_occurred"), + recStart = c(NA, NA, NA, NA, "0", "1"), + recEnd = c("date_start", "date_end", "date_start", "date_end", "0", "1"), + catLabel = c("Start", "End", "Start", "End", "No", "Yes"), + date_start = c("2001-01-01", NA, "2001-01-01", NA, NA, NA), + date_end = c(NA, "2017-03-31", NA, "2025-12-31", NA, NA), + proportion = c(NA, NA, NA, NA, 0.70, 0.30), + rType = c("Date", "Date", "Date", "Date", "factor", "factor"), + stringsAsFactors = FALSE +) + +# Write to temporary files +temp_dir <- tempdir() +config_path <- file.path(temp_dir, "missing_events_config.csv") +details_path <- file.path(temp_dir, "missing_events_details.csv") +write.csv(config, config_path, row.names = FALSE) +write.csv(details, details_path, row.names = FALSE) + +# Generate +mock_data <- create_mock_data( + config_path = config_path, + details_path = details_path, + n = 100, + seed = 123 +) + +# Set death_date to NA for non-deaths +mock_data$death_date[mock_data$death_occurred == 0] <- NA + +# Check result +table(is.na(mock_data$death_date)) # Should be ~70% NA +``` + +## Date ranges and distributions + +### Uniform distribution (default) + +MockData generates dates uniformly across the range: + +``` r +# All dates equally likely between start and end +``` + +**Use cases:** + +- Cohort accrual with constant enrollment +- Administrative dates without seasonal patterns +- General-purpose test data + +### Non-uniform distributions + +MockData currently only supports uniform date distributions. For non-uniform patterns: + +**Option 1:** Generate uniform, then transform + +``` r +# Generate uniform dates +mock_data <- create_mock_data(config, details, n = 1000, seed = 123) + +# Transform to exponential distribution (early enrollment peak) +date_range <- as.numeric(difftime( + max(mock_data$index_date), + min(mock_data$index_date), + units = "days" +)) + +# Convert to exponential (more early dates) +# This is a post-processing transformation +uniform_props <- (mock_data$index_date - min(mock_data$index_date)) / date_range +exp_props <- 1 - exp(-2 * as.numeric(uniform_props)) # Shape parameter = 2 + +mock_data$index_date_exp <- min(mock_data$index_date) + + round(exp_props * date_range) +``` + +**Option 2:** Use DemPoRT patterns + +The [DemPoRT example](demport-example.html) demonstrates realistic temporal patterns for cohort studies, including: + +- Staggered accrual periods +- Age-dependent event rates +- Administrative censoring +- Loss to follow-up patterns + +## Data quality for dates + +### Future dates (corrupt_future) + +Simulate data entry errors where dates are in the future: + +| uid | uid_detail | variable | recStart | recEnd | catLabel | date_start | date_end | proportion | rType | +|-----|------------|----------|----------|--------|----------|------------|----------|------------|-------| +| birth_date_v1 | birth_date_v1_d1 | birth_date | NA | date_start | Start | 1950-01-01 | | 0.98 | Date | +| birth_date_v1 | birth_date_v1_d2 | birth_date | NA | date_end | End | | 2010-12-31 | 0.98 | Date | +| birth_date_v1 | birth_date_v1_d3 | birth_date | [2026-01-01;2030-12-31] | corrupt_future | Future | | | 0.02 | Date | + +**Result:** 2% of birth dates will be in the future (impossible). + +**Note:** Date variables with garbage need both the valid range (date_start/date_end) rows AND the garbage row with proportion specified. + +### Past dates (corrupt_past) + +Simulate impossibly old dates: + +| uid | uid_detail | variable | recStart | recEnd | catLabel | date_start | date_end | proportion | rType | +|-----|------------|----------|----------|--------|----------|------------|----------|------------|-------| +| diagnosis_date_v1 | diagnosis_date_v1_d1 | diagnosis_date | NA | date_start | Start | 2000-01-01 | | 0.97 | Date | +| diagnosis_date_v1 | diagnosis_date_v1_d2 | diagnosis_date | NA | date_end | End | | 2020-12-31 | 0.97 | Date | +| diagnosis_date_v1 | diagnosis_date_v1_d3 | diagnosis_date | [1850-01-01;1900-12-31] | corrupt_past | Too old | | | 0.03 | Date | + +**Result:** 3% of diagnosis dates will be 1850-1900 (unrealistic for modern data). + +### Use cases for garbage dates + +- **Testing validation pipelines:** Ensure your code catches impossible dates +- **Training analysts:** Show examples of real-world data quality issues +- **Data cleaning scripts:** Test date range checks and filtering logic + +## Calculating derived temporal variables + +After generating dates, calculate common derived variables: + +### Age at event + +``` r +# Assuming you have birth_date and index_date +mock_data$age_at_index <- as.numeric( + difftime(mock_data$index_date, mock_data$birth_date, units = "days") +) / 365.25 + +# Or using lubridate +library(lubridate) +mock_data$age_at_index <- time_length( + interval(mock_data$birth_date, mock_data$index_date), + "years" +) +``` + +### Follow-up time + +``` r +# Time from index to event/censoring +mock_data$followup_years <- as.numeric( + difftime(mock_data$death_date, mock_data$index_date, units = "days") +) / 365.25 +``` + +### Calendar year + +``` r +# Extract year for period analysis +mock_data$index_year <- as.numeric(format(mock_data$index_date, "%Y")) + +# Fiscal year (Canada: April 1 - March 31) +mock_data$fiscal_year <- ifelse( + as.numeric(format(mock_data$index_date, "%m")) >= 4, + as.numeric(format(mock_data$index_date, "%Y")), + as.numeric(format(mock_data$index_date, "%Y")) - 1 +) +``` + +### Time-to-event indicators + +``` r +# Event occurred within study period +study_end <- as.Date("2020-12-31") +mock_data$event <- ifelse( + mock_data$death_date <= study_end, + 1, # Event occurred + 0 # Censored +) + +# Time to event or censoring +mock_data$time <- pmin( + as.numeric(difftime(mock_data$death_date, mock_data$index_date, units = "days")), + as.numeric(difftime(study_end, mock_data$index_date, units = "days")) +) +``` + +## Best practices + +### 1. Start with index/baseline date + +Generate the anchor date first, then calculate dependent dates: + +``` r +# Generate baseline date with MockData +baseline_config <- data.frame( + uid = "baseline_date_v1", + variable = "baseline_date", + role = "index-date,enabled", + variableType = "Continuous", + position = 1, + stringsAsFactors = FALSE +) + +baseline_details <- data.frame( + uid = c("baseline_date_v1", "baseline_date_v1"), + uid_detail = c("baseline_date_v1_d1", "baseline_date_v1_d2"), + variable = c("baseline_date", "baseline_date"), + recStart = c(NA, NA), + recEnd = c("date_start", "date_end"), + catLabel = c("Start", "End"), + date_start = c("2010-01-01", NA), + date_end = c(NA, "2015-12-31"), + rType = c("Date", "Date"), + stringsAsFactors = FALSE +) + +# Write to temporary files +temp_dir <- tempdir() +config_path <- file.path(temp_dir, "baseline_config.csv") +details_path <- file.path(temp_dir, "baseline_details.csv") +write.csv(baseline_config, config_path, row.names = FALSE) +write.csv(baseline_details, details_path, row.names = FALSE) + +# Generate baseline dates +mock_data <- create_mock_data( + config_path = config_path, + details_path = details_path, + n = 100, + seed = 123 +) + +# Calculate dependent dates +mock_data$followup_date <- mock_data$baseline_date + 365 # +1 year +mock_data$death_date <- mock_data$baseline_date + + sample(365:3650, 100, replace = TRUE) # Random 1-10 years +``` + +### 2. Use realistic ranges + +Match your date ranges to the study design: + +- **Cohort studies:** Accrual period + follow-up period +- **Cross-sectional surveys:** Survey fielding period +- **Administrative data:** Reporting period + +### 3. Document temporal assumptions + +Add notes to your configuration: + +| uid | variable | role | variableType | variableLabel | notes | position | +|-----|----------|------|--------------|---------------|-------|----------| +| index_date_v1 | index_date | index-date;enabled | Continuous | Cohort entry | Accrual 2001-2005; uniform enrollment | 1 | +| death_date_v1 | death_date | outcome-date;enabled | Continuous | Death date | Follow-up through 2025-12-31 | 2 | + +### 4. Validate temporal logic + +After generation, check: + +``` r +# No negative follow-up times +stopifnot(all(mock_data$death_date >= mock_data$index_date, na.rm = TRUE)) + +# Events within expected range +study_start <- as.Date("2001-01-01") +study_end <- as.Date("2025-12-31") +stopifnot(all(mock_data$death_date >= study_start, na.rm = TRUE)) +stopifnot(all(mock_data$death_date <= study_end, na.rm = TRUE)) +``` + +## Complete example: Cohort study + +Here's a complete configuration for a cohort study with temporal variables: + +**See the [DemPoRT example](demport-example.html)** for a comprehensive, production-ready implementation with: + +- ICES date specifications +- Realistic survival patterns +- Administrative censoring +- Multiple time-varying covariates +- Complete survival analysis setup + +The DemPoRT example is the primary and most detailed demonstration of date variable generation in MockData. + +## Key concepts summary + +| Concept | Implementation | Details | +|-------------------|---------------------------------|-------------------| +| **Date ranges** | `date_start` / `date_end` columns | ISO format: YYYY-MM-DD | +| **Distribution** | Uniform only in v0.2 | Transform after generation for non-uniform | +| **Missing dates** | Use indicator variable + post-processing | MockData doesn't support NA proportions for dates | +| **Derived dates** | Calculate from anchor date | E.g., follow-up = baseline + interval | +| **Garbage dates** | `corrupt_future`, `corrupt_past` | For data quality testing | +| **Temporal ordering** | Validate after generation | Ensure logical date sequences | + +## What you learned + +In this tutorial, you learned: + +- **Date configuration basics:** How to specify date ranges and distributions in configuration files +- **Common temporal patterns:** Cohort accrual, event dates with censoring, multiple time points, and missing events +- **Distribution options:** Uniform, Gompertz, and exponential distributions for realistic temporal patterns +- **Data quality testing:** How to generate corrupt future/past dates for validation pipeline testing +- **Derived temporal variables:** Calculating age, follow-up time, calendar periods, and time-to-event indicators +- **Best practices:** Starting with index dates, using realistic ranges, documenting assumptions, and validating temporal logic + +For complete production-ready examples with survival analysis, see the [DemPoRT example](demport-example.html). + +## Next steps + +- **Complete working example:** [DemPoRT example](demport-example.html) - THE comprehensive date variable demonstration +- **Configuration reference:** [Configuration schema](reference-config.html) - Complete date specification syntax +- **Advanced topics:** [Advanced topics](advanced-topics.html) - Technical details on date generation internals \ No newline at end of file diff --git a/vignettes/tutorial-garbage-data.qmd b/vignettes/tutorial-garbage-data.qmd new file mode 100644 index 0000000..63b61e7 --- /dev/null +++ b/vignettes/tutorial-garbage-data.qmd @@ -0,0 +1,445 @@ +--- +title: "Generating garbage data for validation testing" +format: html +vignette: > + %\VignetteIndexEntry{Generating garbage data for validation testing} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} +--- + +```{r} +#| label: setup +#| include: false +# Load package - works in both local dev and pkgdown build +if (file.exists("../DESCRIPTION")) { + devtools::load_all("../", quiet = TRUE) +} else { + library(MockData) +} +``` + +
+**About this vignette:** This tutorial teaches you how to generate intentionally invalid "garbage" data for testing validation pipelines. You'll learn how to create realistic data quality issues across categorical, continuous, date, and survival variables, then verify your validation logic catches them correctly. +
+ +## Why generate garbage data? + +Data validation is critical for research quality, but how do you know your validation rules actually work? The best approach is to generate mock data with known quality issues, run your validation pipeline, and verify it catches exactly what you expect. + +This tutorial focuses on the DemPoRT project's validation needs. DemPoRT analysts receive large administrative datasets and need robust validation pipelines to catch data quality issues before analysis. By generating mock data with intentional errors, they can: + +1. **Test validation logic** before applying it to real data +2. **Document expected error rates** for different quality checks +3. **Train new team members** on common data quality patterns +4. **Benchmark validation performance** with known error proportions + +Let's start with a motivating example. Suppose you're validating alcohol consumption coding in a health survey dataset: + +```{r} +#| message: false +#| warning: false + +# Load CCHS metadata +variable_details <- read.csv( + system.file("extdata/cchs/variable_details_cchsflow_sample.csv", + package = "MockData"), + stringsAsFactors = FALSE +) + +variables <- read.csv( + system.file("extdata/cchs/variables_cchsflow_sample.csv", + package = "MockData"), + stringsAsFactors = FALSE +) + +# Generate alcohol variable WITHOUT garbage (clean data only) +df_clean <- data.frame() +alc_clean <- create_cat_var( + var_raw = "ALC_1", + cycle = "cchs2001_p", + variable_details = variable_details, + variables = variables, + length = 1000, + df_mock = df_clean, + seed = 123 +) + +# Check for invalid codes (valid codes are 1, 2, and 6 for valid skip) +valid_codes <- c("1", "2", "6") +invalid_clean <- sum(!alc_clean$ALC_1 %in% valid_codes) +``` + +With clean data generated from metadata, your validation check finds `r invalid_clean` invalid codes. But does your validation logic actually work? Let's add intentional garbage using the `prop_invalid` parameter: + +```{r} +#| message: false +#| warning: false + +# Generate alcohol variable WITH garbage using prop_invalid parameter +df_garbage <- data.frame() +alc_garbage <- create_cat_var( + var_raw = "ALC_1", + cycle = "cchs2001_p", + variable_details = variable_details, + variables = variables, + length = 1000, + df_mock = df_garbage, + prop_invalid = 0.03, # 3% invalid codes + seed = 456 +) + +# Run validation check +invalid_garbage <- sum(!alc_garbage$ALC_1 %in% valid_codes) +invalid_rate <- invalid_garbage / nrow(alc_garbage) +``` + +Now your validation finds `r invalid_garbage` invalid codes (`r round(invalid_rate * 100, 1)`% of records). This matches your expected 3% garbage proportion, confirming your validation logic works correctly. + +This pattern—generate garbage, run validation, verify detection—is the foundation of robust data quality testing. + +## Categorical garbage patterns + +Categorical variables can have several types of garbage data. The most common are: + +**Invalid codes**: Values that aren't in the valid category set. Examples: ".a", "NA", "missing", numeric codes outside the defined range. + +**Type mismatches**: Wrong data types. Example: Numeric codes stored as floats (1.0 instead of 1). + +**Encoding issues**: Character encoding problems. Example: "Montr\u00e9al" becomes "Montr\ufffdal". + +MockData uses the `prop_invalid` parameter to automatically generate invalid category codes for testing validation logic. + +### Basic categorical garbage + +Let's generate an ADL (Activities of Daily Living) variable with 3% garbage. The `prop_invalid` parameter tells MockData to generate random invalid codes not found in the metadata: + +```{r} +#| message: false +#| warning: false + +# Generate ADL variable with 3% invalid codes +df_adl <- data.frame() +adl_garbage <- create_cat_var( + var_raw = "ADL_01", + cycle = "cchs2001_p", + variable_details = variable_details, + variables = variables, + length = 2000, + df_mock = df_adl, + prop_invalid = 0.03, # 3% invalid codes + seed = 789 +) + +# Validation: check for invalid codes +# Get valid codes from metadata for ADL_01 +adl_details <- variable_details[variable_details$variable == "ADL_01" & + grepl("cchs2001_p", variable_details$databaseStart, fixed = TRUE), ] +valid_adl_codes <- unique(adl_details$recEnd[!is.na(adl_details$recEnd)]) + +# Check for codes not in metadata +invalid_adl <- !adl_garbage$ADL_01 %in% valid_adl_codes +n_invalid <- sum(invalid_adl) +invalid_pct <- round(n_invalid / nrow(adl_garbage) * 100, 1) +``` + +```{r} +#| echo: false + +# Display validation results +garbage_codes <- unique(adl_garbage$ADL_01[invalid_adl]) +``` + +Validation results: + +- **Total records**: `r nrow(adl_garbage)` +- **Invalid codes found**: `r n_invalid` (`r invalid_pct`%) +- **Garbage codes detected**: `r paste(sort(garbage_codes), collapse = ", ")` + +This matches our expected 3% garbage rate, confirming the validation logic correctly identifies invalid codes generated by `prop_invalid`. + +## Continuous variable garbage + +Continuous variables have different garbage patterns than categorical variables. Common issues include: + +**Out-of-range values**: Numbers outside biologically/logically plausible ranges. Example: Age = 250 years. + +**Type corruption**: Values stored as wrong type. Example: Age stored as character "45.5" instead of numeric. + +**Precision issues**: Inappropriate decimal places. Example: Age = 45.7829 (overly precise). + +MockData uses special recEnd codes to generate continuous garbage: + +- **corrupt_high**: Values above the valid range +- **corrupt_low**: Values below the valid range +- **corrupt_na**: Missing value indicators stored as numbers (e.g., -999) + +### Out-of-range values + +Let's generate alcohol consumption data (number of drinks on Sunday) with out-of-range garbage. The valid range is 0-50 drinks, so we'll use `prop_invalid` to generate values outside this range: + +```{r} +#| message: false +#| warning: false + +# Generate drinks data with 2% out-of-range garbage +df_drinks <- data.frame() +drinks_garbage <- create_con_var( + var_raw = "ALW_2A1", + cycle = "cchs2001_p", + variable_details = variable_details, + variables = variables, + length = 2000, + df_mock = df_drinks, + prop_invalid = 0.02, # 2% out-of-range values + seed = 200 +) + +# Validate: check for out-of-range values +# Valid range for ALW_2A1 is [0, 50] +out_of_range <- drinks_garbage$ALW_2A1 < 0 | drinks_garbage$ALW_2A1 > 50 +n_invalid <- sum(out_of_range, na.rm = TRUE) +invalid_pct <- round(n_invalid / nrow(drinks_garbage) * 100, 1) +``` + +```{r} +#| echo: false + +max_drinks <- max(drinks_garbage$ALW_2A1, na.rm = TRUE) +min_drinks <- min(drinks_garbage$ALW_2A1, na.rm = TRUE) +min_invalid <- if(n_invalid > 0) min(drinks_garbage$ALW_2A1[out_of_range], na.rm = TRUE) else NA +max_invalid <- if(n_invalid > 0) max(drinks_garbage$ALW_2A1[out_of_range], na.rm = TRUE) else NA +``` + +Validation results: + +- **Total records**: `r nrow(drinks_garbage)` +- **Out-of-range values**: `r n_invalid` (`r invalid_pct`%) +- **Overall range**: `r round(min_drinks, 1)` to `r round(max_drinks, 1)` drinks +- **Garbage range**: `r ifelse(is.na(min_invalid), "none", paste(round(min_invalid, 1), "to", round(max_invalid, 1)))` + +This confirms the validator correctly identifies out-of-range drink values. The `prop_invalid` parameter generates values above the maximum (over 50 drinks) for this variable. + +### Testing multiple garbage proportions + +We can test validation thresholds by generating data with different garbage rates. Let's create drinks data with 5% invalid values and check how the validator handles higher garbage rates: + +```{r} +#| message: false +#| warning: false + +# Generate drinks data with higher garbage rate +df_drinks2 <- data.frame() +drinks_garbage2 <- create_con_var( + var_raw = "ALW_2A1", + cycle = "cchs2001_p", + variable_details = variable_details, + variables = variables, + length = 2000, + df_mock = df_drinks2, + prop_invalid = 0.05, # 5% out-of-range values + seed = 201 +) + +# Validate: check for out-of-range values +excessive_drinks <- drinks_garbage2$ALW_2A1 > 50 +n_excessive <- sum(excessive_drinks, na.rm = TRUE) +``` + +```{r} +#| echo: false + +excessive_pct <- round(n_excessive / nrow(drinks_garbage2) * 100, 1) +max_excessive <- if(n_excessive > 0) max(drinks_garbage2$ALW_2A1[excessive_drinks], na.rm = TRUE) else NA +``` + +The validator detects: + +- **Excessive drinks (>50)**: `r n_excessive` (`r excessive_pct`%) +- **Maximum excessive**: `r ifelse(is.na(max_excessive), "none", round(max_excessive, 1))` + +With a higher garbage rate (5%), validators detect more invalid values, allowing you to test how your validation pipeline handles varying levels of data quality issues. + +## Date variable garbage + +Date variables can also use the `prop_invalid` parameter to generate dates outside specified ranges. For date variables, `prop_invalid` generates dates 1-5 years before or after the valid range, making them clearly invalid for validation testing. + +The date garbage generation works the same way as continuous variables—you specify the proportion of invalid values and the function automatically generates out-of-range dates for testing validators. + +## Survival data garbage + +Survival analysis requires coordinated date validation across multiple time points. Garbage data helps test the complex validation rules for temporal consistency. + +Common survival data quality issues: + +**Date sequence violations**: Death before birth, death before interview + +**Impossible survival times**: Negative follow-up time, follow-up exceeding study period + +**Censoring inconsistencies**: Status indicates death but no death date recorded + +### Survival garbage without config + +For survival data, `create_survival_dates()` supports the `prop_invalid` parameter to generate temporal violations (entry date > event date): + +```{r} +#| message: false +#| warning: false + +# Generate survival dates with 3% temporal violations +survival_dates <- create_survival_dates( + entry_var = "study_entry", + event_var = "death_date", + entry_start = as.Date("2015-01-01"), + entry_end = as.Date("2016-12-31"), + followup_min = 30, # Minimum 30 days + followup_max = 3650, # Maximum 10 years + length = 2000, + df_mock = data.frame(), + prop_invalid = 0.03, # 3% temporal violations + seed = 400 +) + +# Validate: entry should occur before event (death) +temporal_violations <- survival_dates$study_entry > survival_dates$death_date +n_violations <- sum(temporal_violations, na.rm = TRUE) +``` + +```{r} +#| echo: false + +violation_pct <- round(n_violations / nrow(survival_dates) * 100, 1) +``` + +Validation detects `r n_violations` temporal violations (`r violation_pct`%), matching our 3% garbage specification. + +When `prop_invalid` is specified, `create_survival_dates()` swaps entry and event dates for the specified proportion of records, creating realistic temporal violations for validator testing. + +### Testing follow-up time calculations + +Temporal violations also produce invalid derived variables like negative follow-up time: + +```{r} +#| message: false +#| warning: false + +# Calculate follow-up time in days (entry to event) +survival_dates$followup_days <- as.numeric( + difftime( + survival_dates$death_date, + survival_dates$study_entry, + units = "days" + ) +) + +# Validate: follow-up should be non-negative +negative_followup <- survival_dates$followup_days < 0 +n_negative_fu <- sum(negative_followup, na.rm = TRUE) +``` + +```{r} +#| echo: false + +negative_fu_pct <- round(n_negative_fu / nrow(survival_dates) * 100, 1) +``` + +Validation results for derived variables: + +- **Negative follow-up time**: `r n_negative_fu` (`r negative_fu_pct`%) + +The negative follow-up times correspond exactly to our temporal violations, confirming validators catch these derived quality issues. + +## Building a validation pipeline + +Now that we understand individual garbage patterns, let's build a complete validation pipeline that tests all quality checks systematically. We'll use MockData functions to generate a dataset with multiple garbage types: + +```{r} +#| message: false +#| warning: false + +# Generate complete dataset with multiple garbage types using MockData +df_full <- data.frame() + +# Step 1: Categorical variable with garbage (ALC_1) +alc_full <- create_cat_var( + var_raw = "ALC_1", + cycle = "cchs2001_p", + variable_details = variable_details, + variables = variables, + length = 5000, + df_mock = df_full, + prop_invalid = 0.03, # 3% invalid codes + seed = 500 +) + +# Step 2: Continuous variable with garbage (ALW_2A1) +df_full <- alc_full +drinks_full <- create_con_var( + var_raw = "ALW_2A1", + cycle = "cchs2001_p", + variable_details = variable_details, + variables = variables, + length = 5000, + df_mock = df_full, + prop_invalid = 0.02, # 2% out-of-range + seed = 501 +) + +# Combine into single dataset +full_data <- cbind(alc_full, drinks_full) + +# Run validation suite +# Check 1: Categorical codes +alc_details <- variable_details[variable_details$variable == "ALC_1" & + grepl("cchs2001_p", variable_details$databaseStart, fixed = TRUE), ] +valid_alc <- unique(alc_details$recEnd[!is.na(alc_details$recEnd)]) +alc_invalid <- !full_data$ALC_1 %in% valid_alc + +# Check 2: Drinks range (valid: 0-50) +drinks_invalid <- full_data$ALW_2A1 < 0 | full_data$ALW_2A1 > 50 + +# Check 3: Combined validation (any record with any issue) +any_issue <- alc_invalid | drinks_invalid + +# Build results table +validation_results <- data.frame( + check = c("ALC_1: invalid codes", "ALW_2A1: out of range", "Any validation failure"), + n_fail = c(sum(alc_invalid), sum(drinks_invalid, na.rm = TRUE), sum(any_issue, na.rm = TRUE)), + pct_fail = c( + round(sum(alc_invalid) / nrow(full_data) * 100, 2), + round(sum(drinks_invalid, na.rm = TRUE) / nrow(full_data) * 100, 2), + round(sum(any_issue, na.rm = TRUE) / nrow(full_data) * 100, 2) + ) +) + +# Display results +validation_results +``` + +This validation suite detects all intentional garbage patterns. The failure rates match our specified proportions (3% for ALC_1, 2% for ALW_2A1), confirming each validator works correctly. + +## What you learned + +In this tutorial, you learned how to: + +- **Generate categorical garbage data** using the `prop_invalid` parameter to create invalid codes +- **Create continuous garbage patterns** using the `prop_invalid` parameter for out-of-range values +- **Test date validation logic** using the `prop_invalid` parameter for out-of-period dates +- **Add temporal violations in survival data** using the `prop_invalid` parameter to swap entry and event dates +- **Add explicit garbage with config files** using `catLabel::garbage` specifications +- **Build comprehensive validation pipelines** that test multiple quality checks systematically +- **Verify validator accuracy** by comparing detected rates to known garbage proportions + +The key principle: generate mock data with **known** quality issues, run your validators, and confirm they detect **exactly** what you expect. This approach gives you confidence that your validation pipeline will catch real data quality problems in production. + +## Next steps + +- **Practice with your project**: Generate garbage data matching your specific validation rules +- **Test edge cases**: Create scenarios that stress-test validator boundary conditions +- **Document expected rates**: Use garbage data to establish baseline error rate expectations +- **Automate validation testing**: Integrate garbage data generation into your CI/CD pipeline + +**Related vignettes**: + +- [DemPoRT example](demport-example.html): See garbage data in a complete DemPoRT workflow +- [Date variables tutorial](tutorial-dates.html): Learn advanced date generation techniques +- [Getting started](getting-started.html): Review MockData fundamentals diff --git a/vignettes/tutorial-missing-data.qmd b/vignettes/tutorial-missing-data.qmd new file mode 100644 index 0000000..c3562dd --- /dev/null +++ b/vignettes/tutorial-missing-data.qmd @@ -0,0 +1,268 @@ +--- +title: "Missing data in health surveys" +format: html +vignette: > + %\VignetteIndexEntry{Missing data in health surveys} + %\VignetteEngine{quarto::html} + %\VignetteEncoding{UTF-8} +--- + +```{r} +#| label: setup +#| include: false +# Load package - works in both local dev and pkgdown build +if (file.exists("../DESCRIPTION")) { + devtools::load_all("../", quiet = TRUE) +} else { + library(MockData) +} +``` + +
+**About this vignette:** This tutorial teaches you how to generate realistic missing data in mock health survey datasets. You'll learn why different types of missing data codes matter for statistical analysis and how to handle them correctly in your research. +
+ +## Understanding missing data in health surveys + +Health surveys use structured missing data codes to distinguish between different types of non-response. Unlike general R data where `NA` represents any missing value, survey data differentiates between several categories of missingness. This distinction is crucial for accurate statistical analysis. + +Consider a simple example: calculating smoking prevalence from survey data. If you treat all missing values the same way, you'll get biased estimates. Let's see why. + +```{r} +#| message: false +#| warning: false + +# Generate smoking data with two approaches +set.seed(123) + +# Wrong approach: treating all missing as NA +smoking_wrong <- data.frame( + smoker = sample(c("Yes", "No", NA), 1000, + replace = TRUE, + prob = c(0.20, 0.70, 0.10)) +) + +# Correct approach: using survey missing codes +smoking_correct <- data.frame( + smoker = sample(c("1", "2", "6", "7", "9"), 1000, + replace = TRUE, + prob = c(0.20, 0.70, 0.05, 0.03, 0.02)) +) +``` + +Now let's calculate prevalence both ways: + +```{r} +#| message: false +#| warning: false + +# Wrong calculation (naive approach) +wrong_prevalence <- mean(smoking_wrong$smoker == "Yes", na.rm = TRUE) + +# Correct calculation (excluding valid skip, including DK/RF/NS in denominator) +valid_responses <- smoking_correct$smoker %in% c("1", "2", "7", "9") +correct_prevalence <- sum(smoking_correct$smoker == "1") / sum(valid_responses) +``` + +```{r} +#| echo: false + +# Calculate for inline display +wrong_pct <- round(wrong_prevalence * 100, 1) +correct_pct <- round(correct_prevalence * 100, 1) +``` + +The naive approach gives us a prevalence of `r wrong_pct`%, while the correct approach gives `r correct_pct`%. This difference matters when making population-level estimates or comparing across surveys. + +### Why missing data codes matter + +In health surveys, not all missing values mean the same thing. The Canadian Community Health Survey (CCHS) and Canadian Health Measures Survey (CHMS) use a standardized system of missing data codes: + +- **Valid skip (996)**: The question was not asked because skip logic determined it wasn't applicable +- **Don't know (997)**: The question was asked but the respondent didn't know the answer +- **Refusal (998)**: The question was asked but the respondent refused to answer +- **Not stated (999)**: The question was asked but no response was recorded + +Each type has different statistical implications. Valid skips should be excluded from your denominator (they weren't part of the eligible population for that question). But don't know, refusal, and not stated should be included in the denominator when calculating response rates, even though they're excluded from the numerator when calculating prevalence. + +Let's generate some realistic data to see this in action: + +```{r} +#| message: false +#| warning: false + +# Load metadata for examples +variable_details <- read.csv( + system.file("extdata/cchs/variable_details_cchsflow_sample.csv", + package = "MockData"), + stringsAsFactors = FALSE +) + +variables <- read.csv( + system.file("extdata/cchs/variables_cchsflow_sample.csv", + package = "MockData"), + stringsAsFactors = FALSE +) + +# Create smoking data with realistic proportions using MockData +df_mock <- data.frame() +smoking_data <- create_cat_var( + var_raw = "SMK_01", + cycle = "cchs2015_2016_p", + variable_details = variable_details, + variables = variables, + length = 1000, + df_mock = df_mock, + proportions = list( + "1" = 0.18, # Current smoker + "2" = 0.65, # Never smoked + "3" = 0.12, # Former smoker + "6" = 0.01, # Valid skip + "7" = 0.02, # Don't know + "9" = 0.02 # Not stated + ), + seed = 456 +) + +# Show distribution +table(smoking_data$SMK_01) +``` + +### The three types of missing data codes + +Health surveys categorize missing data into three main types, each requiring different statistical treatment. + +**Valid skip (code 996)** + +A valid skip occurs when skip logic determines a question should not be asked. For example, if someone reports they've never smoked, they won't be asked "How many cigarettes per day do you smoke?" This isn't truly missing data—it's a logical consequence of their previous answer. + +Statistical treatment: Exclude from both the numerator and denominator. These respondents weren't eligible for the question. + +**Don't know / Refusal / Not stated (codes 997, 998, 999)** + +These codes represent questions that were asked but didn't receive valid responses: + +- **997 (Don't know)**: Respondent was uncertain about the answer +- **998 (Refusal)**: Respondent declined to answer +- **999 (Not stated)**: Question was asked but no response was recorded + +Statistical treatment: Include in the denominator when calculating response rates (they were eligible and asked), but exclude from the numerator when calculating prevalence (we don't know their true status). + +**Not applicable (code 996, sometimes labeled NA::a)** + +This is similar to valid skip—the question doesn't apply to the respondent's situation. The statistical treatment is the same as valid skip. + +Let's demonstrate the difference with a worked example: + +```{r} +#| message: false +#| warning: false + +# Calculate response rate (includes DK/RF/NS in denominator) +asked <- smoking_data$SMK_01 %in% c("1", "2", "3", "7", "9") +valid_response <- smoking_data$SMK_01 %in% c("1", "2", "3") +response_rate <- sum(valid_response) / sum(asked) + +# Calculate prevalence (excludes valid skip from denominator, excludes DK/NS from numerator) +current_smoker <- smoking_data$SMK_01 == "1" +asked_not_skip <- smoking_data$SMK_01 %in% c("1", "2", "3", "7", "9") +prevalence <- sum(current_smoker) / sum(asked_not_skip) +``` + +```{r} +#| echo: false + +# Format for display +response_pct <- round(response_rate * 100, 1) +prevalence_pct <- round(prevalence * 100, 1) +n_asked <- sum(asked) +n_valid_skip <- sum(smoking_data$SMK_01 == "6") +``` + +In this dataset: + +- **Sample size**: `r nrow(smoking_data)` respondents +- **Valid skip**: `r n_valid_skip` (not asked due to skip logic) +- **Asked**: `r n_asked` (eligible for the question) +- **Response rate**: `r response_pct`% (valid responses ÷ asked) +- **Smoking prevalence**: `r prevalence_pct`% (current smokers ÷ asked excluding DK/NS) + +Notice how valid skip (6) doesn't factor into either calculation—those respondents were never part of the eligible population for this question. + +### Real-world example from CCHS + +Let's use actual CCHS metadata to generate realistic missing data patterns. The CCHS uses these same coding schemes across hundreds of variables. + +```{r} +#| message: false +#| warning: false + +# Load CCHS metadata +variable_details <- read.csv( + system.file("extdata/cchs/variable_details_cchsflow_sample.csv", + package = "MockData"), + stringsAsFactors = FALSE +) + +# Look at alcohol consumption variable +alc_details <- variable_details[variable_details$variable == "ALC_15", ] +head(alc_details[, c("variable", "recEnd", "catLabel", "catLabelLong")], 10) +``` + +This shows how missing codes appear in actual survey metadata. The `recEnd` column contains the category values, including both substantive responses (1-4 for frequency categories) and missing data codes (6, 7, 9, 96, 97, 99). + +We can use this metadata to generate mock data with realistic proportions: + +```{r} +#| message: false +#| warning: false + +# Generate alcohol consumption data using CCHS patterns +df_mock_alc <- data.frame() +alcohol_data <- create_cat_var( + var_raw = "ALC_15", + cycle = "cchs2015_2016_p", + variable_details = variable_details, + variables = variables, + length = 2000, + df_mock = df_mock_alc, + proportions = list( + "1" = 0.15, # Regular drinker + "2" = 0.35, # Occasional drinker + "3" = 0.28, # Infrequent drinker + "4" = 0.15, # Non-drinker + "6" = 0.01, # Valid skip + "7" = 0.03, # Don't know + "9" = 0.03 # Not stated + ), + seed = 789 +) + +# Calculate response rate and prevalence of regular drinking +asked_alc <- alcohol_data$ALC_15 %in% c("1", "2", "3", "4", "7", "9") +valid_alc <- alcohol_data$ALC_15 %in% c("1", "2", "3", "4") +response_rate_alc <- sum(valid_alc) / sum(asked_alc) + +regular_drinker <- alcohol_data$ALC_15 == "1" +prevalence_alc <- sum(regular_drinker) / sum(asked_alc) +``` + +```{r} +#| echo: false + +response_alc_pct <- round(response_rate_alc * 100, 1) +prevalence_alc_pct <- round(prevalence_alc * 100, 1) +n_asked_alc <- sum(asked_alc) +n_dk_alc <- sum(alcohol_data$ALC_15 == "7") +n_ns_alc <- sum(alcohol_data$ALC_15 == "9") +``` + +For this alcohol consumption variable: + +- **Response rate**: `r response_alc_pct`% (`r sum(valid_alc)` valid responses ÷ `r n_asked_alc` asked) +- **Regular drinking prevalence**: `r prevalence_alc_pct`% (`r sum(regular_drinker)` regular drinkers ÷ `r n_asked_alc` asked) +- **Don't know responses**: `r n_dk_alc` (`r round(n_dk_alc/n_asked_alc*100, 1)`% of those asked) +- **Not stated**: `r n_ns_alc` (`r round(n_ns_alc/n_asked_alc*100, 1)`% of those asked) + +This demonstrates how real CCHS data includes measurable proportions of missing data codes, and why distinguishing between them matters for accurate statistical reporting. +