Для моего кодера json я хотел бы напечатать набор чисел с десятичными знаками n
. Два способа являются:Форматирование высокопроизводительных чисел
x <- c(1,2,pi)
n <- 2
format(x, digits = n, nsmall = n, trim = TRUE, drop0trailing = TRUE)
formatC(x, digits = n, format = "f", drop0trailing = TRUE)
Однако параметр drop0trailing
кажется ввести большой (~ 10x) производительность регрессии:
x <- rnorm(1e6)
system.time(format(x, digits = n, nsmall = n, trim = TRUE))
user system elapsed
0.584 0.000 0.584
system.time(format(x, digits = n, nsmall = n, trim = TRUE, drop0trailing = TRUE))
user system elapsed
5.763 0.040 5.799
Есть альтернативный способ печати номера с n
знаков после запятой, что быстрее?
Могу ли я предотвратить его формы поспешных научной нотации? 'as.character (round (0.0001, 4))' – Jeroen
@Jeroen См. обновление моего ответа. –
@Jeroen Я объединил 'sprintf' с' sub'. См. Обновление. –