Check a logical test
check_logical.Rd
Check a logical test
Usage
check_logical(
dataset,
uuid_column = "uuid",
information_to_add = NULL,
check_id = "logical_xx",
check_to_perform,
columns_to_clean = NULL,
description
)
Arguments
- dataset
dataset to be check as a dataframe or a list with the dataframe stored as "checked_dataset"
- uuid_column
uuid column in the dataset. Default is "uuid".
- information_to_add
string vector optional, if to add some information to the log (today, vilagge)
- check_id
name of the check to perform
- check_to_perform
test to perform as R code (in text format)
- columns_to_clean
variables to be put in the log. if not provided, it will try to detect variables
- description
description of the check performed
Value
return a list with the dataset checked stored as checked_dataset, it will have all a column added with the check_id and a dataframe with the logical check log.
Examples
test_data <- data.frame(
uuid = c(1:10) %>% as.character(),
today = rep("2023-01-01", 10),
location = rep(c("villageA", "villageB"), 5),
distance_to_market = c(rep("less_30", 5), rep("more_30", 5)),
access_to_market = c(rep("yes", 4), rep("no", 6)),
number_children_05 = c(rep(c(0, 1), 4), 5, 6)
)
check_logical(test_data,
uuid_column = "uuid",
check_id = "my_test",
check_to_perform = "distance_to_market == \"less_30\" & access_to_market == \"no\"",
columns_to_clean = "distance_to_market, access_to_market",
description = "distance to market less than 30 and no access"
)
#> $checked_dataset
#> uuid today location distance_to_market access_to_market
#> 1 1 2023-01-01 villageA less_30 yes
#> 2 2 2023-01-01 villageB less_30 yes
#> 3 3 2023-01-01 villageA less_30 yes
#> 4 4 2023-01-01 villageB less_30 yes
#> 5 5 2023-01-01 villageA less_30 no
#> 6 6 2023-01-01 villageB more_30 no
#> 7 7 2023-01-01 villageA more_30 no
#> 8 8 2023-01-01 villageB more_30 no
#> 9 9 2023-01-01 villageA more_30 no
#> 10 10 2023-01-01 villageB more_30 no
#> number_children_05 my_test
#> 1 0 FALSE
#> 2 1 FALSE
#> 3 0 FALSE
#> 4 1 FALSE
#> 5 0 TRUE
#> 6 1 FALSE
#> 7 0 FALSE
#> 8 1 FALSE
#> 9 5 FALSE
#> 10 6 FALSE
#>
#> $my_test
#> # A tibble: 2 × 6
#> uuid question old_value issue check_id check_binding
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 5 distance_to_market less_30 distance to market … my_test my_test ~/~ 5
#> 2 5 access_to_market no distance to market … my_test my_test ~/~ 5
#>
check_logical(test_data,
uuid_column = "uuid",
information_to_add = c("today", "location"),
check_to_perform = "distance_to_market == \"less_30\" & access_to_market == \"no\"",
columns_to_clean = "distance_to_market, access_to_market",
description = "distance to market less than 30 and no access"
)
#> $checked_dataset
#> uuid today location distance_to_market access_to_market
#> 1 1 2023-01-01 villageA less_30 yes
#> 2 2 2023-01-01 villageB less_30 yes
#> 3 3 2023-01-01 villageA less_30 yes
#> 4 4 2023-01-01 villageB less_30 yes
#> 5 5 2023-01-01 villageA less_30 no
#> 6 6 2023-01-01 villageB more_30 no
#> 7 7 2023-01-01 villageA more_30 no
#> 8 8 2023-01-01 villageB more_30 no
#> 9 9 2023-01-01 villageA more_30 no
#> 10 10 2023-01-01 villageB more_30 no
#> number_children_05 logical_xx
#> 1 0 FALSE
#> 2 1 FALSE
#> 3 0 FALSE
#> 4 1 FALSE
#> 5 0 TRUE
#> 6 1 FALSE
#> 7 0 FALSE
#> 8 1 FALSE
#> 9 5 FALSE
#> 10 6 FALSE
#>
#> $logical_xx
#> # A tibble: 2 × 8
#> uuid today location question old_value issue check_id check_binding
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 5 2023-01-01 villageA distance_to_… less_30 dist… logical… logical_xx ~…
#> 2 5 2023-01-01 villageA access_to_ma… no dist… logical… logical_xx ~…
#>