¿Cómo se puede cambiar concisamente una variable R numérica (manteniéndola en un valor numérico) para que, por ejemplo, "-0,34" se convierta simplemente en "-.34"?Cómo eliminar "0." líder en una variable R numérica
Respuesta
Solo cuando imprima un valor numérico, debe elegir una representación concreta (es decir, cómo debe formatearse el número). No puede cambiar una variable numérica de "-0.34" a "-.34"; ambas son representaciones para el mismo número.
Sin embargo, cuando imprima una expresión e
, puede elegir cómo debe formatearse. No sé de ninguna manera la acumulación para dejar fuera el líder de "0", pero siempre se puede simplemente eliminar de forma manual:
> sub("^(-?)0.", "\\1.", sprintf("%.2f", -0.34))
[1] "-.34"
se puede definir una función para la conveniencia, por ejemplo,
numformat <- function(val) { sub("^(-?)0.", "\\1.", sprintf("%.2f", val)) }
Además de respuesta agradable @ de Stefan, yo nos topamos con el siguiente código que lleva a cabo la misma cosa pero imprime más decimales:
f = function(X1)gsub("0\\.","\\.", X1)
Debe tener cuidado con solo reemplazar "0". con ".", ya que esto convertirá "10.12" en "1.12", lo que presumiblemente no es intencionado. Lo resolví usando la expresión regular '"^(-?) 0. "'. Esto solo coincide si el cero es el primer caracter (excepto posiblemente un '-'). – stefan
Gracias por el consejo, Stefan. @Manoel Galdino: para mí, la variable sigue siendo numérica después de usar la función de Stefan. – rolando2
Además de las respuestas existentes, que quería mencionar que la El paquete weights
tiene una función rd()
que se puede usar para "redondear números al texto sin cero al principio". Por supuesto, el resultado no es numérico, sino personaje.
library("weights")
rd(-0.341, digits=2)
[1] "-.34"
Necesitaba mostrar los números a 3 decimales. Si desea imprimir en un número arbitrario de decimales y no desea tener que agregar otro paquete (es decir, el paquete weights
anterior), entonces esta función (adaptada de la respuesta de @stefan) parece funcionar:
numformat <- function(x, digits = 2) {
ncode <- paste0("%.", digits, "f")
sub("^(-?)0.", "\\1.", sprintf(ncode, x))
}
Así, por ejemplo:
> numformat(-.232, 2)
[1] "-.23"
> numformat(-.232, 3)
[1] "-.232"
> numformat(-.232, 4)
[1] "-.2320"
Si es para la presentación de informes en I Markdown utilizo el MOTE paquete con el APA() y código: apa(-0.34, 2, FALSE)
esto devolverá -.34 en mis documentos.
- 1. Intercalando una variable numérica en R
- 2. C# ToString ("MM/dd/aa") eliminar líder de 0
- 3. recodificación numérica vectorial R
- 4. Declarando una variable Const en R
- 5. Cómo eliminar 0's de una cadena
- 6. Quitar líder coma de una cadena
- 7. ¿Cómo puedo hacer una variable ficticia en R?
- 8. Eliminar una memoria variable
- 9. "espuria" líder en látex
- 10. ¿Cómo acceder a una propiedad numérica?
- 11. decimal.TryParse() cae líder "1"
- 12. R: ¿cómo eliminar columnas en una tabla de datos?
- 13. ¿Cómo puedo eliminar caracteres repetidos en una cadena con R?
- 14. Crear una navegación numérica
- 15. Crear una variable categórica en R basada en el rango
- 16. Establecer NA a 0 en R
- 17. ¿Cambiar el líder en MacVim?
- 18. ¿Qué significa cuando una constante numérica en C/C++ tiene el prefijo 0?
- 19. Backbone.js y hash líder
- 20. powershell: ¿cómo formatear get-date en string y eliminar 0's?
- 21. vi - ¿cómo generar una secuencia numérica?
- 22. ¿Cómo eliminar una variable de una matriz sesión de PHP
- 23. Cómo sumar una lista numérica elementos
- 24. Haskell: ¿Cómo poner "\\ 0" en "\ 0"?
- 25. ¿Cómo eliminar filas con un valor cero en R?
- 26. Explicar el patrón "Líder/Seguidor"
- 27. ¿Cómo puedo contar con una base numérica diferente en C++?
- 28. Eliminar todos los caracteres especiales de una cadena en R?
- 29. PHP eliminar "referencia" de una variable.
- 30. Cómo quitar '\ 0' de una cadena en C#?
Pero 'sub' cambia la variable a carácter ... –
corrigiendo: * cambia –