Authorized_drug<-data.frame(
Drug_ID = 1:10,
Drug_Name = c("Atorvastatin", "Metformin", "Amlodipine", "Omeprazole", "Aspirin",
"Levothyroxine", "Sertraline", "Pantoprazole", "Losartan", "ASA"),
stringsAsFactors = FALSE
)
golde<-data.frame(
National_code = c("123", "456", "789","545","4454","554","665"),
LastName = c("Bahman","Johnson","Williams","Brown","Jones","Garcia","Miller"),
Certificate_Expiry = c("1404-07-01", "2030-01-12", "2025-01-11",
"1404-06-28","2025-09-19",NA,NA),
Blood_type = c("A-","B+","AB","A+","O-","O+","AB-"),
stringsAsFactors = FALSE
)
S_data <- data.frame(
National_code = c("123", "1456", "789","545","4454","554"),
LastName = c("Aliyar","Johnson","Williams","Brown","Jones","Garcia"),
VisitDate = c("2025-09-23", "2021-01-10", "2021-01-03","1404-06-28","1404-07-28",NA),
Test_date = c("1404-07-01", "2021-01-09", "2021-01-14","1404-06-29","2025-09-19",NA),
Certificate_validity = c("2025-09-23", "2025-01-12", "2025-02-11","1403-06-28","2025-09-19",NA),
Systolic_Reading1 = c(110, NA, 145, 125,114,NA),
Systolic_Reading2 = c(125, 150, NA, 110,100,NA),
Prescription_drug= c("Atorvastatin", "Metformin", "Amlodipine",
"Omeprazole", "Aspirin","Metoprolol"),
Blood_type = c("A-","B+","AB","A+","O-","O+"),
Height = c(178,195,165,NA,155,1.80),
stringsAsFactors = FALSE
)
M_data <- data.frame(
VARIABLE = c("National_code", "Certificate_validity", "VisitDate","Test_date",
"LastName","Systolic_Reading1","Systolic_Reading2",
"Prescription_drug","Blood_type","Height"),
Correctness_Rule = c(
"National_code %in% GOLDEN$National_code",
"val <= GOLDEN$Certificate_Expiry",
"((val >= '1404-06-01' & val <= '1404-06-31') | val == as.Date('2021-01-02'))",
"val != VisitDate",
"val %in% GOLDEN$LastName",
"",
"",
"val %in% Authorized_drug$Drug_Name",
"val %in% GOLDEN$Blood_type",
""),
TYPE=c("numeric","date","date","date","character","numeric",
"numeric","character","character","numeric"),
Correctness_Error_Type=c("Error",NA,"Warning","Error",NA,NA,NA,NA,"Error","Warning"),
stringsAsFactors = FALSE
)
result <- correctness_check(
S_data = S_data,
M_data = M_data,
golden_data = golde,
key_column = c("National_code"),
Result =FALSE,
external_data = Authorized_drug
)
print(result)
#
result <- correctness_check(
S_data = S_data,
M_data = M_data,
golden_data = golde,
#key_column = c("National_code"),#If you do not select a key, you can use Gold Data as a
#list and your logical rules will be NA.
Result =TRUE,
external_data = Authorized_drug
)
print(result)
Run the code above in your browser using DataLab