Hola, buenos días: Utilizando format(value, nsmall=2) obtengo valores del estilo de los siguientes: 4.300477 9.655813e-05 Utilizando format(signif(value, 3), scientific=TRUE) obtengo algo que se aproxima más a lo que necesito. Lo que obtengo es: 4.3e+00 9.66e-05 Aún así, no consigo forzar a 2 cifras decimales, pues en el primer número necesitaría mostrar 4.30e+00 en lugar de 4.3e+00. ¿Alguien me puede ayudar?. Gracias. Eva [[alternative HTML version deleted]]
Hola, mira a ver si el paquete numConversion te sirve, quizás te simplifique la tarea. Un saludo, Olmo. El Wed, 11 Jul 2012 05:47:56 +0100 (BST) Eva Prieto Castro <evapcastro en yahoo.es> escribió:> Hola, buenos días: > > Utilizando format(value, nsmall=2) obtengo valores del estilo de los > siguientes: > > 4.300477 > 9.655813e-05 > > Utilizando format(signif(value, 3), scientific=TRUE) obtengo algo que > se aproxima más a lo que necesito. Lo que obtengo es: > > 4.3e+00 > 9.66e-05 > > Aún así, no consigo forzar a 2 cifras decimales, pues en el primer > número necesitaría mostrar 4.30e+00 en lugar de 4.3e+00. > > ¿Alguien me puede ayudar?. > > Gracias. > Eva > > [[alternative HTML version deleted]] >-- Olmo Hernández Cuba Instituto Universitario de Investigación CIBIO Universidad de Alicante Campus Universitario San Vicente del Raspeig 03690 Alicante España
Hola, siento volver a responder, lo envié antes de tiempo, la otra opción con format es: format(rounf(x, 2), nsmall = 2) Espero que te sirva. Un saludo, Olmo. El Wed, 11 Jul 2012 05:47:56 +0100 (BST) Eva Prieto Castro <evapcastro en yahoo.es> escribió:> Hola, buenos días: > > Utilizando format(value, nsmall=2) obtengo valores del estilo de los > siguientes: > > 4.300477 > 9.655813e-05 > > Utilizando format(signif(value, 3), scientific=TRUE) obtengo algo que > se aproxima más a lo que necesito. Lo que obtengo es: > > 4.3e+00 > 9.66e-05 > > Aún así, no consigo forzar a 2 cifras decimales, pues en el primer > número necesitaría mostrar 4.30e+00 en lugar de 4.3e+00. > > ¿Alguien me puede ayudar?. > > Gracias. > Eva > > [[alternative HTML version deleted]] >
round(x,2) On Wednesday, July 11, 2012, Olmo wrote:> Hola, mira a ver si el paquete numConversion te sirve, quizás te > simplifique la tarea. > > Un saludo, > Olmo. > > > El Wed, 11 Jul 2012 05:47:56 +0100 (BST) > Eva Prieto Castro <evapcastro@yahoo.es <javascript:;>> escribió: > > Hola, buenos días: > > > > Utilizando format(value, nsmall=2) obtengo valores del estilo de los > > siguientes: > > > > 4.300477 > > 9.655813e-05 > > > > Utilizando format(signif(value, 3), scientific=TRUE) obtengo algo que > > se aproxima más a lo que necesito. Lo que obtengo es: > > > > 4.3e+00 > > 9.66e-05 > > > > Aún así, no consigo forzar a 2 cifras decimales, pues en el primer > > número necesitaría mostrar 4.30e+00 en lugar de 4.3e+00. > > > > ¿Alguien me puede ayudar?. > > > > Gracias. > > Eva > > > > [[alternative HTML version deleted]] > > > > > > -- > Olmo Hernández Cuba > Instituto Universitario de Investigación CIBIO > Universidad de Alicante > Campus Universitario San Vicente del Raspeig > 03690 Alicante > España > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org <javascript:;> > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Prof. Julio Di Rienzo Estadística y Biometría FCA- U.N. Córdoba IBS-RARG President http://sites.google.com/site/juliodirienzo "Biometry, the active pursuit of biological knowledge by quantitative methods." (R.A. Fisher, 1948) [[alternative HTML version deleted]]
Hola, No es tan sencillo como parece. Las soluciones anteriores no terminan de funcionar: Esta solución que sí que parece funcionar....> val<-c(4.300477) > format(round(val, 2), nsmall = 2)[1] "4.30" no lo hace en notación científica:> val<-c(4.300477) > format(round(val, 2), nsmall = 2, scientific=T)[1] "4.3e+00" Y la solución del redondeo directa, que es la más obvia no cumple por no ser notación científica y por no considerar en este caso el "0" tras el "3" (de val) como cifra significativa:> round(val,2)[1] 4.3 La solución inicial de Eva, directamente funciona si en vez de ser val=4,300477 fuese por ejemplo val=4,350477...> val<-c(4.350477) > format(signif(val,3), scientific=T)[1] "4.35e+00" He probado a cambiar varios parámetros de "options()" (digits, scipen) pero el problema persiste, el cero no se considera cifra significativa (en este tipo de casos) y no se muestra... Saludos, Carlos Ortega www.qualityexcellence.es El 11 de julio de 2012 11:30, Julio Alejandro Di Rienzo < dirienzo.julio@gmail.com> escribió:> round(x,2) > > > On Wednesday, July 11, 2012, Olmo wrote: > > > Hola, mira a ver si el paquete numConversion te sirve, quizás te > > simplifique la tarea. > > > > Un saludo, > > Olmo. > > > > > > El Wed, 11 Jul 2012 05:47:56 +0100 (BST) > > Eva Prieto Castro <evapcastro@yahoo.es <javascript:;>> escribió: > > > Hola, buenos días: > > > > > > Utilizando format(value, nsmall=2) obtengo valores del estilo de los > > > siguientes: > > > > > > 4.300477 > > > 9.655813e-05 > > > > > > Utilizando format(signif(value, 3), scientific=TRUE) obtengo algo que > > > se aproxima más a lo que necesito. Lo que obtengo es: > > > > > > 4.3e+00 > > > 9.66e-05 > > > > > > Aún así, no consigo forzar a 2 cifras decimales, pues en el primer > > > número necesitaría mostrar 4.30e+00 en lugar de 4.3e+00. > > > > > > ¿Alguien me puede ayudar?. > > > > > > Gracias. > > > Eva > > > > > > [[alternative HTML version deleted]] > > > > > > > > > > > -- > > Olmo Hernández Cuba > > Instituto Universitario de Investigación CIBIO > > Universidad de Alicante > > Campus Universitario San Vicente del Raspeig > > 03690 Alicante > > España > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org <javascript:;> > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > -- > Prof. Julio Di Rienzo > Estadística y Biometría > FCA- U.N. Córdoba > IBS-RARG President > http://sites.google.com/site/juliodirienzo > "Biometry, the active pursuit of biological > knowledge by quantitative methods." > (R.A. Fisher, 1948) > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Hola, el problema con indicar sólo round(x,2) es que no fuerzas a que se muestren dos decimales (como en el caso de 3.00000056, por ejemplo, sólo mostraría "3"), para ello debe ir acompañado de nsmall de la forma siguiente: format(round(x, 2), nsmall = 2) Así se fuerza siempre que muestre dos decimales. Saludos, Olmo. El Wed, 11 Jul 2012 06:30:51 -0300 Julio Alejandro Di Rienzo <dirienzo.julio en gmail.com> escribió:> round(x,2) > > > On Wednesday, July 11, 2012, Olmo wrote: > > > Hola, mira a ver si el paquete numConversion te sirve, quizás te > > simplifique la tarea. > > > > Un saludo, > > Olmo. > > > > > > El Wed, 11 Jul 2012 05:47:56 +0100 (BST) > > Eva Prieto Castro <evapcastro en yahoo.es <javascript:;>> escribió: > > > Hola, buenos días: > > > > > > Utilizando format(value, nsmall=2) obtengo valores del estilo de > > > los siguientes: > > > > > > 4.300477 > > > 9.655813e-05 > > > > > > Utilizando format(signif(value, 3), scientific=TRUE) obtengo algo > > > que se aproxima más a lo que necesito. Lo que obtengo es: > > > > > > 4.3e+00 > > > 9.66e-05 > > > > > > Aún así, no consigo forzar a 2 cifras decimales, pues en el primer > > > número necesitaría mostrar 4.30e+00 en lugar de 4.3e+00. > > > > > > ¿Alguien me puede ayudar?. > > > > > > Gracias. > > > Eva > > > > > > [[alternative HTML version deleted]] > > > > > > > > > > > -- > > Olmo Hernández Cuba > > Instituto Universitario de Investigación CIBIO > > Universidad de Alicante > > Campus Universitario San Vicente del Raspeig > > 03690 Alicante > > España > > _______________________________________________ > > R-help-es mailing list > > R-help-es en r-project.org <javascript:;> > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > >
Hola, Una forma de hacerlo es así, con la función "sprintf()"> val<-c(4.300477) > sprintf("%.2e",val)[1] "4.30e+00"> > val<-c(9.655813e-07) > sprintf("%.2e",val)[1] "9.66e-07" Saludos, Carlos Ortega www.qualityexcellence.es El 11 de julio de 2012 12:24, Olmo <ulmusnigra@yahoo.es> escribió:> Hola, el problema con indicar sólo round(x,2) es que no fuerzas a que > se muestren dos decimales (como en el caso de 3.00000056, por > ejemplo, sólo mostraría "3"), para ello debe ir acompañado de nsmall de > la forma siguiente: > > format(round(x, 2), nsmall = 2) > > Así se fuerza siempre que muestre dos decimales. > > Saludos, > Olmo. > > > El Wed, 11 Jul 2012 06:30:51 -0300 > Julio Alejandro Di Rienzo <dirienzo.julio@gmail.com> escribió: > > round(x,2) > > > > > > On Wednesday, July 11, 2012, Olmo wrote: > > > > > Hola, mira a ver si el paquete numConversion te sirve, quizás te > > > simplifique la tarea. > > > > > > Un saludo, > > > Olmo. > > > > > > > > > El Wed, 11 Jul 2012 05:47:56 +0100 (BST) > > > Eva Prieto Castro <evapcastro@yahoo.es <javascript:;>> escribió: > > > > Hola, buenos días: > > > > > > > > Utilizando format(value, nsmall=2) obtengo valores del estilo de > > > > los siguientes: > > > > > > > > 4.300477 > > > > 9.655813e-05 > > > > > > > > Utilizando format(signif(value, 3), scientific=TRUE) obtengo algo > > > > que se aproxima más a lo que necesito. Lo que obtengo es: > > > > > > > > 4.3e+00 > > > > 9.66e-05 > > > > > > > > Aún así, no consigo forzar a 2 cifras decimales, pues en el primer > > > > número necesitaría mostrar 4.30e+00 en lugar de 4.3e+00. > > > > > > > > ¿Alguien me puede ayudar?. > > > > > > > > Gracias. > > > > Eva > > > > > > > > [[alternative HTML version deleted]] > > > > > > > > > > > > > > > > -- > > > Olmo Hernández Cuba > > > Instituto Universitario de Investigación CIBIO > > > Universidad de Alicante > > > Campus Universitario San Vicente del Raspeig > > > 03690 Alicante > > > España > > > _______________________________________________ > > > R-help-es mailing list > > > R-help-es@r-project.org <javascript:;> > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Gracias a todos!. El sprintf es el ganador indiscutible. Un saludo Eva --- El mié, 11/7/12, Carlos Ortega <cof@qualityexcellence.es> escribió: De: Carlos Ortega <cof@qualityexcellence.es> Asunto: Re: [R-es] Duda manejando formato Para: "r-help-es@r-project.org" <r-help-es@r-project.org> Fecha: miércoles, 11 de julio, 2012 12:45 Hola, Una forma de hacerlo es así, con la función "sprintf()"> val<-c(4.300477) > sprintf("%.2e",val)[1] "4.30e+00"> > val<-c(9.655813e-07) > sprintf("%.2e",val)[1] "9.66e-07" Saludos, Carlos Ortega www.qualityexcellence.es El 11 de julio de 2012 12:24, Olmo <ulmusnigra@yahoo.es> escribió:> Hola, el problema con indicar sólo round(x,2) es que no fuerzas a que > se muestren dos decimales (como en el caso de 3.00000056, por > ejemplo, sólo mostraría "3"), para ello debe ir acompañado de nsmall de > la forma siguiente: > > format(round(x, 2), nsmall = 2) > > Así se fuerza siempre que muestre dos decimales. > > Saludos, > Olmo. > > > El Wed, 11 Jul 2012 06:30:51 -0300 > Julio Alejandro Di Rienzo <dirienzo.julio@gmail.com> escribió: > > round(x,2) > > > > > > On Wednesday, July 11, 2012, Olmo wrote: > > > > > Hola, mira a ver si el paquete numConversion te sirve, quizás te > > > simplifique la tarea. > > > > > > Un saludo, > > > Olmo. > > > > > > > > > El Wed, 11 Jul 2012 05:47:56 +0100 (BST) > > > Eva Prieto Castro <evapcastro@yahoo.es <javascript:;>> escribió: > > > > Hola, buenos días: > > > > > > > > Utilizando format(value, nsmall=2) obtengo valores del estilo de > > > > los siguientes: > > > > > > > > 4.300477 > > > > 9.655813e-05 > > > > > > > > Utilizando format(signif(value, 3), scientific=TRUE) obtengo algo > > > > que se aproxima más a lo que necesito. Lo que obtengo es: > > > > > > > > 4.3e+00 > > > > 9.66e-05 > > > > > > > > Aún así, no consigo forzar a 2 cifras decimales, pues en el primer > > > > número necesitaría mostrar 4.30e+00 en lugar de 4.3e+00. > > > > > > > > ¿Alguien me puede ayudar?. > > > > > > > > Gracias. > > > > Eva > > > > > > > > [[alternative HTML version deleted]] > > > > > > > > > > > > > > > > -- > > > Olmo Hernández Cuba > > > Instituto Universitario de Investigación CIBIO > > > Universidad de Alicante > > > Campus Universitario San Vicente del Raspeig > > > 03690 Alicante > > > España > > > _______________________________________________ > > > R-help-es mailing list > > > R-help-es@r-project.org <javascript:;> > > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > > > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] -----Adjunto en línea a continuación----- _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]