R Style and Readability
Readable Filter
Name the Predicate
A named logical vector makes a filter easier to review than a hidden condition inside brackets.
Program
Play the script to change the minimum value and see the predicate drive the filtered result.
readable_filter.R
min_value <-
values <- c(2, 4, 6, 8)
is_large <- values >= min_value
selected <- values[is_large]
count <- length(selected)
label <- paste("kept", count, sep = ":")
cat(label, "\n", sep = "")
min_value <-
values <- c(2, 4, 6, 8)
is_large <- values >= min_value
selected <- values[is_large]
count <- length(selected)
label <- paste("kept", count, sep = ":")
cat(label, "\n", sep = "")
min_value <-
values <- c(2, 4, 6, 8)
is_large <- values >= min_value
selected <- values[is_large]
count <- length(selected)
label <- paste("kept", count, sep = ":")
cat(label, "\n", sep = "")
predicate name
`is_large` documents why each value is kept or dropped.
logical vector
A logical vector can filter another vector of the same length.
readable review
Naming the predicate gives reviewers an intermediate value to inspect.