Skip to contents
-
T_and_F_symbol_linter
T
and F
symbol linter
-
any_duplicated_linter
- Require usage of
anyDuplicated(x) > 0
over any(duplicated(x))
-
any_is_na_linter
- Require usage of
anyNA(x)
over any(is.na(x))
-
class_equals_linter
- Block comparison of class with
==
-
condition_message_linter
- Block usage of
paste()
and paste0()
with messaging functions using ...
-
double_assignment_linter
- double_assignment
-
duplicate_argument_linter
- Duplicate argument linter
-
empty_assignment_linter
- empty_assignment
-
equal_assignment_linter
- equal_assignment
-
equals_na_linter
- Equality check with NA linter
-
expect_comparison_linter
- Require usage of
expect_gt(x, y)
over expect_true(x > y)
(and similar)
-
expect_identical_linter
- Require usage of
expect_identical(x, y)
where appropriate
-
expect_length_linter
- Require usage of
expect_length(x, n)
over expect_equal(length(x), n)
-
expect_named_linter
- Require usage of
expect_named(x, n)
over expect_equal(names(x), n)
-
expect_not_linter
- Require usage of
expect_false(x)
over expect_true(!x)
-
expect_null_linter
- Require usage of
expect_null
for checking NULL
-
expect_true_false_linter
- Require usage of
expect_true(x)
over expect_equal(x, TRUE)
-
expect_type_linter
- Require usage of
expect_type(x, type)
over expect_equal(typeof(x), type)
-
for_loop_index_linter
- Block usage of for loops directly overwriting the indexing variable
-
function_return_linter
- Lint common mistakes/style issues cropping up from return statements
-
implicit_assignment_linter
- implicit_assignment
-
is_numeric_linter
- Redirect
is.numeric(x) || is.integer(x)
to just use is.numeric(x)
-
length_levels_linter
- Require usage of nlevels over length(levels(.))
-
length_test_linter
- Check for a common mistake where length is applied in the wrong place
-
lengths_linter
- Require usage of
lengths()
where possible
-
library_call_linter
- Library call linter
-
list_comparison_linter
- Block usage of comparison operators with known-list() functions like lapply
-
literal_coercion_linter
- Require usage of correctly-typed literals over literal coercions
-
matrix_apply_linter
- Require usage of
colSums(x)
or rowSums(x)
over apply(x, ., sum)
-
missing_argument_linter
- Missing argument linter
-
nested_ifelse_linter
- Block usage of nested
ifelse()
calls
-
numeric_leading_zero_linter
- Require usage of a leading zero in all fractional numerics
-
outer_negation_linter
- Require usage of
!any(x)
over all(!x)
, !all(x)
over any(!x)
-
package_hooks_linter
- Package hooks linter
-
paste_linter
- Raise lints for several common poor usages of
paste()
-
redundant_equals_linter
- Block usage of
==
, !=
on logical vectors
-
redundant_ifelse_linter
- Prevent
ifelse()
from being used to produce TRUE
/FALSE
or 1
/0
-
rep_len_linter
- Require usage of rep_len(x, n) over rep(x, length.out = n)
-
right_assignment_linter
- right_assignment
-
sample_int_linter
- Require usage of sample.int(n, m, ...) over sample(1:n, m, ...)
-
semicolon_linter
- Semicolon linter
-
seq_linter
- Sequence linter
-
sort_linter
- Check for common mistakes around sorting vectors
-
stopifnot_all_linter
- Block usage of all() within stopifnot()
-
todo_comment_linter
- TODO comment linter
-
undesirable_function_linter
- Undesirable function linter
-
undesirable_operator_linter
- Undesirable operator linter
-
unnecessary_nesting_linter
- Block instances of unnecessary nesting
-
unreachable_code_linter
- Block unreachable code and comments following return statements
-
which_grepl_linter
- Require usage of grep over which(grepl(.))