Справочная информация: Некоторые ответы, предлагаемые на этой странице (например, 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))
E.g.,
specify_decimal(1234, 5)
# [1] "1234.00000"
specify_decimal(0.1234, 5)
# [1] "0.12340"
person
Jeromy Anglim
schedule
27.08.2012
controls the number of digits to print when printing numeric values. It is a suggestion only. Valid values are 1...22 with default 7. See the note in print.default about values greater than 15.
из? Параметров он только влияет на вывод. - person Brandon Bertelsen   schedule 03.08.2012round(23, digits=2)
будет печатать23
, а не23.00
. Если вам нужно последнее, попробуйте stackoverflow.com/a/12135122/180892 - person Jeromy Anglim   schedule 07.12.2012