Check data
Start with the expanded example for each command. Open the variants for options and alternative R approaches. Read the qualifications before adapting the code.
assert
Stop when a condition fails
Stata
assert x > 0R Package:tidystata
assert(data, x > 0)Differs from Stata Reports the number of contradictions and returns the data, so it fits in a pipe. Missing x counts as a contradiction, unlike Stata, where missing is larger than any number: write assert(data, is.na(x) | x > 0) for Stata’s behaviour.
confirm
Check that a variable exists
Stata
confirm variable xR Package:base
stopifnot("x" %in% names(data))count
1 more examples and alternatives
Count rows meeting a condition
Stata
count if x > 0R Package:base
sum(data$x > 0, na.rm = TRUE)Differs from Stata Stata numeric missing values compare larger than every finite number; R comparisons return NA. Handle missing values explicitly before applying the condition.
distinct
Number of distinct combinations
Stata
distinct x1 x2, jointR Package:dplyr
nrow(distinct(data, x1, x2))duplicates
List duplicated rows
Stata
duplicates list x1 x2R Package:tidystata
duplicates_list(data, x1, x2)Count duplicated rows
Stata
duplicates report x1 x2R Package:tidystata
duplicates_report(data, x1, x2)Mark duplicated rows
Stata
duplicates tag x1 x2, generate(dup)R Package:tidystata
duplicates_tag(data, x1, x2, .name = "dup")isid
Check that variables identify the rows
Stata
isid id waveR Package:tidystata
isid(data, id, wave)mdesc
Missing values per variable
Stata
mdescR Package:tidystata
summ(data, .stat = "missing")misstable
Missing-value patterns
Stata
misstable patternsR Package:tidystata
misstable(data, .patterns = TRUE)1 marks an observed value and 0 a missing one, as in Stata.
Missing values per variable
Stata
misstable summarizeR Package:tidystata
misstable(data)Base R: colSums(is.na(data)).