Data Import Checks
Row Counts
Check Expected Size
A quick row-count check catches partial imports before analysis starts.
Program
Play the script to change the expected row count and compare it with the imported rows.
row_counts.R
Replay: real traced execution (multi-file project)
expected_rows <- 4
rows <- c("Ada", "Bo", "Chen", "Dia")
actual_rows <- length(rows)
status <- if (actual_rows == expected_rows) "match" else "review"
delta <- actual_rows - expected_rows
label <- paste(status, delta, sep = ":")
cat(label, "\n", sep = "")
expected_rows <- 3
rows <- c("Ada", "Bo", "Chen", "Dia")
actual_rows <- length(rows)
status <- if (actual_rows == expected_rows) "match" else "review"
delta <- actual_rows - expected_rows
label <- paste(status, delta, sep = ":")
cat(label, "\n", sep = "")
expected_rows <- 5
rows <- c("Ada", "Bo", "Chen", "Dia")
actual_rows <- length(rows)
status <- if (actual_rows == expected_rows) "match" else "review"
delta <- actual_rows - expected_rows
label <- paste(status, delta, sep = ":")
cat(label, "\n", sep = "")
expected_rows ← 4
1expected_rows <- 42rows <- c("Ada", "Bo", "Chen", "Dia")values this step4expected_rowsrows ← Ada, Bo, Chen, Dia
1expected_rows <- 42rows <- c("Ada", "Bo", "Chen", "Dia")3actual_rows <- length(rows)values this stepAda, Bo, Chen, Diarowsactual_rows ← 4
2rows <- c("Ada", "Bo", "Chen", "Dia")3actual_rows <- length(rows)4status <- if (actual_rows == expected_rows) "match" else "review"values this step4actual_rows4 rowsrowsstatus ← match
3actual_rows <- length(rows)4status <- if (actual_rows == expected_rows) "match" else "review"5delta <- actual_rows - expected_rowsvalues this stepmatchstatus4actual_rows4expected_rowsdelta ← 0
4status <- if (actual_rows == expected_rows) "match" else "review"5delta <- actual_rows - expected_rows6label <- paste(status, delta, sep = ":")values this step0delta4actual_rows4expected_rowslabel ← match:0
5delta <- actual_rows - expected_rows6label <- paste(status, delta, sep = ":")7cat(label, "\n", sep = "")values this stepmatch:0labelmatchstatus0deltacat(label, " ", sep = "")
6label <- paste(status, delta, sep = ":")7cat(label, "\n", sep = "")outputmatch:0values this stepmatch:0label
expected_rows ← 3
1expected_rows <- 32rows <- c("Ada", "Bo", "Chen", "Dia")values this step3expected_rowsrows ← Ada, Bo, Chen, Dia
1expected_rows <- 32rows <- c("Ada", "Bo", "Chen", "Dia")3actual_rows <- length(rows)values this stepAda, Bo, Chen, Diarowsactual_rows ← 4
2rows <- c("Ada", "Bo", "Chen", "Dia")3actual_rows <- length(rows)4status <- if (actual_rows == expected_rows) "match" else "review"values this step4actual_rows4 rowsrowsstatus ← review
3actual_rows <- length(rows)4status <- if (actual_rows == expected_rows) "match" else "review"5delta <- actual_rows - expected_rowsvalues this stepreviewstatus4actual_rows3expected_rowsdelta ← 1
4status <- if (actual_rows == expected_rows) "match" else "review"5delta <- actual_rows - expected_rows6label <- paste(status, delta, sep = ":")values this step1delta4actual_rows3expected_rowslabel ← review:1
5delta <- actual_rows - expected_rows6label <- paste(status, delta, sep = ":")7cat(label, "\n", sep = "")values this stepreview:1labelreviewstatus1deltacat(label, " ", sep = "")
6label <- paste(status, delta, sep = ":")7cat(label, "\n", sep = "")outputreview:1values this stepreview:1label
expected_rows ← 5
1expected_rows <- 52rows <- c("Ada", "Bo", "Chen", "Dia")values this step5expected_rowsrows ← Ada, Bo, Chen, Dia
1expected_rows <- 52rows <- c("Ada", "Bo", "Chen", "Dia")3actual_rows <- length(rows)values this stepAda, Bo, Chen, Diarowsactual_rows ← 4
2rows <- c("Ada", "Bo", "Chen", "Dia")3actual_rows <- length(rows)4status <- if (actual_rows == expected_rows) "match" else "review"values this step4actual_rows4 rowsrowsstatus ← review
3actual_rows <- length(rows)4status <- if (actual_rows == expected_rows) "match" else "review"5delta <- actual_rows - expected_rowsvalues this stepreviewstatus4actual_rows5expected_rowsdelta ← -1
4status <- if (actual_rows == expected_rows) "match" else "review"5delta <- actual_rows - expected_rows6label <- paste(status, delta, sep = ":")values this step-1delta4actual_rows5expected_rowslabel ← review:-1
5delta <- actual_rows - expected_rows6label <- paste(status, delta, sep = ":")7cat(label, "\n", sep = "")values this stepreview:-1labelreviewstatus-1deltacat(label, " ", sep = "")
6label <- paste(status, delta, sep = ":")7cat(label, "\n", sep = "")outputreview:-1values this stepreview:-1label
row count
`length(rows)` represents the number of imported records.
expectation
`expected_rows` makes the import contract explicit.
delta
The difference points to missing or unexpected rows.