Require usage of colSums(x)
or rowSums(x)
over apply(x, ., sum)
Source: R/matrix_apply_linter.R
matrix_apply_linter.Rd
colSums()
and rowSums()
are clearer and more performant alternatives to
apply(x, 2, sum)
and apply(x, 1, sum)
respectively in the case of 2D
arrays, or matrices
See also
linters for a complete list of linters available in lintr.
Examples
# will produce lints
lint(
text = "apply(x, 1, sum)",
linters = matrix_apply_linter()
)
#> ::warning file=<text>,line=1,col=1::file=<text>,line=1,col=1,[matrix_apply_linter] Use rowSums(x) rather than apply(x, 1, sum)
lint(
text = "apply(x, 2, sum)",
linters = matrix_apply_linter()
)
#> ::warning file=<text>,line=1,col=1::file=<text>,line=1,col=1,[matrix_apply_linter] Use rowSums(colSums(x)) or colSums(x) if x has 2 dimensions rather than apply(x, 2, sum)
lint(
text = "apply(x, 2, sum, na.rm = TRUE)",
linters = matrix_apply_linter()
)
#> ::warning file=<text>,line=1,col=1::file=<text>,line=1,col=1,[matrix_apply_linter] Use rowSums(colSums(x, na.rm = TRUE)) or colSums(x, na.rm = TRUE) if x has 2 dimensions rather than apply(x, 2, sum, na.rm = TRUE)
lint(
text = "apply(x, 2:4, sum)",
linters = matrix_apply_linter()
)
#> ::warning file=<text>,line=1,col=1::file=<text>,line=1,col=1,[matrix_apply_linter] Use rowSums(colSums(x), dims = 3) or colSums(x) if x has 4 dimensions rather than apply(x, 2:4, sum)