que quiero formatear los números en mis informes a significant digits, pero tenga ceros significativos y correcta formato a un gran númeroFormato de números a cifras significativas bien en I
Por ejemplo los números C (10.00001,12345,1234.5,123.45, 1.2345,0.12345) a 3 dígitos significativos deben ser 10,0, 12300, 1230, 123, 1,23, 0,123, pero puedo conseguir diferentes resultados con diferentes métodos (y ninguno parece funcionar universaly.
> numbers<-c(10.00001,12345,1234.5,123.45,1.2345,0.12345)
> for(n in seq(numbers)){
+ print(signif(numbers[n],digits=3))
+ print(format(numbers[n],digits=3))
+ print(formatC(numbers[n], digits=3,format="fg"))
+ print(formatC(numbers[n], digits=3,format="fg", flag="#"))
+ }
[1] 10
[1] "10"
[1] " 10"
[1] "10.0"
[1] 12300
[1] "12345"
[1] "12345"
[1] "12345."
[1] 1230
[1] "1234"
[1] "1234"
[1] "1234."
[1] 123
[1] "123"
[1] " 123"
[1] "123."
[1] 12.3
[1] "12.3"
[1] "12.3"
[1] "12.3"
[1] 1.23
[1] "1.23"
[1] "1.23"
[1] "1.23"
[1] 0.123
[1] "0.123"
[1] "0.123"
[1] "0.123"
Aquí, signif y el formato redondo el resultado 10.00001. formatC con flag = "#" correctamente hace los números pequeños pero no los números grandes.
¿Hay una manera mejor?
también tratar de aplicar, lapply y sapply en lugar de bucle ... –
que puede tener un error conceptual grave, pero no el 'apply' familia de funciones todavía uso de bucles? Pero abstrae los bucles para que el código sea más limpio y fácil de leer, con menos mantenimiento. ¿Derecha? –
Disculpe, el ciclo está ahí solo para mostrar los resultados. Originalmente tenía signif (números, dígitos = 3), pero por alguna razón eso no pasó a la notación científica. – PaulHurleyuk