From 72f0602f6bce8de975ec46ac32799aad772b6b06 Mon Sep 17 00:00:00 2001 From: Stef van Buuren Date: Thu, 21 Mar 2024 11:21:56 +0100 Subject: [PATCH 1/2] Change schema for BDS 71 (country of birth) to string with 4 numbers (like 4PC code) --- inst/schemas/bds_v3.0.json | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/inst/schemas/bds_v3.0.json b/inst/schemas/bds_v3.0.json index 7fe7a11..1c76b45 100644 --- a/inst/schemas/bds_v3.0.json +++ b/inst/schemas/bds_v3.0.json @@ -97,7 +97,7 @@ { "properties": { "bdsNumber": { - "const": 16 + "enum": [16, 71] }, "value": { "type": "string", @@ -137,18 +137,6 @@ "value": {"enum": ["01", "02", "03", "04", "05", "06", "07", "08", "09", "98", "00"]} } }, - { - "properties": { - "bdsNumber": { - "const": 71 - }, - "value": { - "type": "number", - "minimum": 1000, - "maximum": 9999 - } - } - }, { "properties": { "bdsNumber": { From 38cff6191b78caff5e582d1c468997663db63644 Mon Sep 17 00:00:00 2001 From: Stef van Buuren Date: Thu, 21 Mar 2024 12:21:43 +0100 Subject: [PATCH 2/2] Adapt reading modules and examples for BDS 71 to string of four numbers --- R/convert_checked_list_3.R | 12 +++++------- R/convert_raw_df.R | 4 ++-- data-raw/R/bds_lexicon.R | 2 +- inst/examples/test.json | 4 ++-- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/R/convert_checked_list_3.R b/R/convert_checked_list_3.R index f735578..b52a38b 100644 --- a/R/convert_checked_list_3.R +++ b/R/convert_checked_list_3.R @@ -76,17 +76,15 @@ convert_checked_list_3 <- function(bds, ds) { first() } - if (all(hasName(bds, c("number", "nest", "code")))) { + if (all(hasName(bds, c("character", "nest", "code")))) { psn[["blbf"]] <- filter(bds, bds == 71L & .data$nest == 62L & .data$code == "01") %>% - pull("number") %>% - first() %>% - as.integer() + pull("character") %>% + first() psn[["blbm"]] <- filter(bds, bds == 71L & .data$nest == 62L & .data$code == "02") %>% - pull("number") %>% - first() %>% - as.integer() + pull("character") %>% + first() } if (all(hasName(bds, c("category", "nest", "code")))) { diff --git a/R/convert_raw_df.R b/R/convert_raw_df.R index 391f5c5..15ac3e0 100644 --- a/R/convert_raw_df.R +++ b/R/convert_raw_df.R @@ -97,8 +97,8 @@ set_type <- function(bds) { 948, 949, 950, 953, 954, 972, 980, 982, 984, 998, 1001, 1278) date <- c(20, 63) - number <- c(71, 82, 110, 235, 238, 240, 245, 252, 471) - character <- c(16) + number <- c(82, 110, 235, 238, 240, 245, 252, 471) + character <- c(16, 71) type <- rep(NA_character_, length(bds)) type[bds %in% category] <- "category" diff --git a/data-raw/R/bds_lexicon.R b/data-raw/R/bds_lexicon.R index f4ec2e2..9e5a30a 100644 --- a/data-raw/R/bds_lexicon.R +++ b/data-raw/R/bds_lexicon.R @@ -46,7 +46,7 @@ create_bds_lexicon <- function() { "one of: 01, 02, 03, 04, 05, 06, 07, 08, 98", "yyyymmdd", "one of: 01, 02, 03, 04, 05, 06, 07, 08, 98, 00", - "4-digit code", + "string with 4-digits", "in days", "one of: 1, 2, 99", "in grammes", diff --git a/inst/examples/test.json b/inst/examples/test.json index f2e0e4b..fd24ae3 100644 --- a/inst/examples/test.json +++ b/inst/examples/test.json @@ -96,7 +96,7 @@ }, { "bdsNumber": 71, - "value": 6030 + "value": "6030" } ] }, @@ -110,7 +110,7 @@ }, { "bdsNumber": 71, - "value": 6030 + "value": "6030" }, { "bdsNumber": 66,