View source: R/strings_as_factors_linter.R
strings_as_factors_linter | R Documentation |
stringsAsFactors
should be supplied explicitlyDesigned for code bases written for versions of R before 4.0 seeking to upgrade to R >= 4.0, where
one of the biggest pain points will surely be the flipping of the
default value of stringsAsFactors
from TRUE
to FALSE
.
strings_as_factors_linter()
It's not always possible to tell statically whether the change will break
existing code because R is dynamically typed – e.g. in data.frame(x)
if x
is a string, this code will be affected, but if x
is a number,
this code will be unaffected. However, in data.frame(x = "a")
, the
output will unambiguously be affected. We can instead supply
stringsAsFactors = TRUE
, which will make this code backwards-compatible.
See https://developer.r-project.org/Blog/public/2020/02/16/stringsasfactors/.
robustness
linters for a complete list of linters available in lintr.
# will produce lints
lint(
text = 'data.frame(x = "a")',
linters = strings_as_factors_linter()
)
# okay
lint(
text = 'data.frame(x = "a", stringsAsFactors = TRUE)',
linters = strings_as_factors_linter()
)
lint(
text = 'data.frame(x = "a", stringsAsFactors = FALSE)',
linters = strings_as_factors_linter()
)
lint(
text = "data.frame(x = 1.2)",
linters = strings_as_factors_linter()
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.