Во-первых, его не нужно точно указывать как целое число (т. Е. 5
работает просто отлично ).
Во-вторых, вы можете сделать ?scales::percent_format
в любое время в консоли R (это бесплатно!). Это говорит вам об этой функции:
percent_format(
accuracy = NULL, scale = 100, prefix = "", suffix = "%",
big.mark = " ", decimal.mark = ".", trim = TRUE, ...
)
Итак, он принимает много возможных параметров, каждый из которых имеет значения по умолчанию, а некоторые являются опциями (через ...
).
По умолчанию для параметра accuracy
установлено значение NULL
. Если прокрутить немного вниз на странице справки для функции, которую мы видим:
accuracy
: число к округлению, NULL
для автоматического угадывания.
Если мы введем имя функции без символов или префикса ?
, мы увидим весь источник. Это показывает, что в конечном итоге он вызывает scales::number()
, который определяется как:
function (x, accuracy = 1, scale = 1, prefix = "", suffix = "",
big.mark = " ", decimal.mark = ".", trim = TRUE, ...) {
if (length(x) == 0) return(character())
accuracy <- accuracy %||% precision(x)
x <- round_any(x, accuracy/scale)
nsmall <- -floor(log10(accuracy))
nsmall <- min(max(nsmall, 0), 20)
ret <- format(scale * x, big.mark = big.mark, decimal.mark = decimal.mark,
trim = trim, nsmall = nsmall, scientific = FALSE, ...)
ret <- paste0(prefix, ret, suffix)
ret[is.infinite(x)] <- as.character(x[is.infinite(x)])
ret[is.na(x)] <- NA
ret
}
Это:
accuracy <- accuracy %||% precision(x)
говорит, что если accuracy
не NULL
, используйте его, иначе угадывайте с помощью функции precision()
.
Следующая строка после этого - окончательный ответ на ваш вопрос.