Also lint nrow(filter(.)) in nrow_subset_linter() #2457
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #2313
This is the simplest version. I was weighing a more complicated version a la
conjunct_test_linter()
'sallow_filter=
argument where we also check that this is notstats::filter()
and decided against it for now. FWIW, there are no hits fornrow(stats::filter(
on GitHub (which of course doesn't preclude this being run without namespace-qualifyingstats
):https://github.com/search?q=lang%3AR+%2Fnrow%5B%28%5D%5Cs*stats%3A%3Afilter%5B%28%5D%2F&type=code
I also left out new
okay
examples because AFAIK thewith()
approach is the simplest in {dplyr} world as well. The more {dplyr}-esque approach I can think of would bex |> summarize(n = sum(<filter>, na.rm = TRUE)) |> pull(n)
, but that looks way worse to me thanwith()
(OTOH, it will work with all backends).