# Require `c()`

to be applied before relatively expensive vectorized functions

Source: `R/inner_combine_linter.R`

`inner_combine_linter.Rd`

`as.Date(c(a, b))`

is logically equivalent to `c(as.Date(a), as.Date(b))`

.
The same equivalence holds for several other vectorized functions like
`as.POSIXct()`

and math functions like `sin()`

. The former is to be
preferred so that the most expensive part of the operation (`as.Date()`

)
is applied only once.

## See also

linters for a complete list of linters available in lintr.

## Examples

```
# will produce lints
lint(
text = "c(log10(x), log10(y), log10(z))",
linters = inner_combine_linter()
)
#> ::warning file=<text>,line=1,col=1::file=<text>,line=1,col=1,[inner_combine_linter] Combine inputs to vectorized functions first to take full advantage of vectorization, e.g., log10(c(x, y)) only runs the more expensive log10() once as compared to c(log10(x), log10(y)).
# okay
lint(
text = "log10(c(x, y, z))",
linters = inner_combine_linter()
)
lint(
text = "c(log(x, base = 10), log10(x, base = 2))",
linters = inner_combine_linter()
)
```