one_call_pipe_linter {lintr} | R Documentation |
Block single-call magrittr pipes
Description
Prefer using a plain call instead of a pipe with only one call,
i.e. 1:10 %>% sum()
should instead be sum(1:10)
. Note that
calls in the first %>%
argument count. rowSums(x) %>% max()
is OK
because there are two total calls (rowSums()
and max()
).
Usage
one_call_pipe_linter()
Details
Note also that un-"called" steps are not counted, since they should
be calls (see pipe_call_linter()
).
Tags
See Also
-
linters for a complete list of linters available in lintr.
Examples
# will produce lints
lint(
text = "(1:10) %>% sum()",
linters = one_call_pipe_linter()
)
lint(
text = "DT %>% .[grp == 'a', sum(v)]",
linters = one_call_pipe_linter()
)
# okay
lint(
text = "rowSums(x) %>% mean()",
linters = one_call_pipe_linter()
)
lint(
text = "DT[src == 'a', .N, by = grp] %>% .[N > 10]",
linters = one_call_pipe_linter()
)
# assignment pipe is exempted
lint(
text = "DF %<>% mutate(a = 2)",
linters = one_call_pipe_linter()
)
[Package lintr version 3.2.0 Index]