Справочная информация: Некоторые ответы, предложенные на этой странице (например, signif
, options(digits=...)
), не гарантируют, что определенное количество десятичных знаков отображается для произвольного числа.Я предполагаю, что это конструктивная особенность в R, при которой надлежащая научная практика включает в себя показ определенного числа цифр, основанных на принципах " значащих цифр ".Однако во многих доменах (например, стиль APA , бизнес-отчеты) требования к форматированию диктуют необходимость отображения определенного количества десятичных знаков.Это часто делается для согласованности и стандартизации, а не для значимых цифр.
Решение :
В следующем коде показано ровно два десятичных знака для числа x
.
format(round(x, 2), nsmall = 2)
Например:
format(round(1.20, 2), nsmall = 2)
# [1] "1.20"
format(round(1, 2), nsmall = 2)
# [1] "1.00"
format(round(1.1234, 2), nsmall = 2)
# [1] "1.12"
Более общая функция выглядит следующим образом, где x
- это число, а k
- это количество отображаемых десятичных знаков.trimws
удаляет все начальные пробелы, которые могут быть полезны, если у вас есть вектор чисел.
specify_decimal <- function(x, k) trimws(format(round(x, k), nsmall=k))
Например,
specify_decimal(1234, 5)
# [1] "1234.00000"
specify_decimal(0.1234, 5)
# [1] "0.12340"