varias superponer studio lineas histogramas graficos graficas r units-of-measurement

superponer - Conversión de unidades en R



superponer graficas en r (5)

Me gustaría convertir unidades imperiales en métricas y viceversa en R. ¿Cómo puedo hacer eso?

Si no hay una forma actual de hacerlo, ¿cómo puedo crear un paquete que lo haga?


El paquete udunits2 hace justamente eso. Envuelve la poderosa biblioteca UDUNITS :

udunits2::ud.convert(1, "mi", "km") ## [1] 1.609344

Además de eso, el paquete de units (trabajo en progreso) tiene como objetivo proporcionar un sistema de tipo seguro para hacer aritmética con unidades:

with(ud_units, 1 * mi + 2 * km) ## 2.242742 mi with(ud_units, 100 * km / (2 * h)) ## 50 km/h with(ud_units, 1 * mi + 2 * lb) ## Error: cannot convert lb into mi


Existen las funciones unit() y convertUnit() en el paquete grid para especificar diferentes unidades de longitud y dimensión. Eso puede hacer lo que quiera, o darle un lugar para comenzar si no.


Hay un "nuevo" paquete de R llamado unidades de hoy, que fue construido sobre el paquete R de udunits2 , que está disponible hace un tiempo.

Eche un vistazo a: https://cran.r-project.org/web/packages/units/vignettes/units.html#setting-units-unit-conversion

library(units) (spd1 = 1:5 * with(ud_units, m/s)) ##Units: m/s ##[1] 1 2 3 4 5 (spd2 = 1:5 * with(ud_units, km/h)) #Units: km/h #[1] 1 2 3 4 5 spd1 + spd2 # automatic conversion #Units: m/s #[1] 1.277778 2.555556 3.833333 5.111111 6.388889 spd1 * spd2 # unit derivation #Units: km*m/h/s #[1] 1 4 9 16 25 spd1 * 10 * with(ud_units, s) # unit simplification #Units: m #[1] 10 20 30 40 50 spd1 + 10 * with(ud_units, s) # error checking #Error in `units<-.units`(`*tmp*`, value = list(numerator = "m", denominator = "s")) : cannot convert s into m/s


La naturaleza de las unidades puede afectar la presencia o la ausencia. En general, creo que, desafortunadamente, @gsk3 es correcto. Hay algunas funciones en los paquetes ''Hmisc'', ''gdata'' y ''marelac'':

Establecer un atributo de unidades (para más que solo objetos de tiempo): http://finzi.psych.upenn.edu/R/library/Hmisc/html/units.html

Médico: http://finzi.psych.upenn.edu/R/library/gdata/html/ConvertMedUnits.html

Índice ''marelac'' (principalmente especializado en oceanografía) http://finzi.psych.upenn.edu/R/library/marelac/html/00Index.html

Temperatura: http://finzi.psych.upenn.edu/R/library/marelac/html/convert_T.html

Barométrico: http://finzi.psych.upenn.edu/R/library/marelac/html/convert_p.html

El paquete "dieléctrico" fue mencionado por @Brian Diggs en una respuesta a una pregunta similar: Enlace a la página de ayuda de ''constantes'' en el paquete ''dieléctrico''

Creo que esos proporcionarán ejemplos de cómo hacerlo y la función package.skeleton debería ayudar con la mecánica de la creación de paquetes. Creo que el paquete sería una adición bienvenida.

Actualización: El paquete ''udunits2'' fue mencionado por Gabor Grothendieck en una pregunta similar a rhelp el 23 de julio de 2012. Parece requerir la instalación de un paquete independiente del sistema operativo con el mismo nombre. Sin dicha instalación, se obtiene un mensaje de error bastante inútil:

> ud.convert(1, "miles", "km") Error in ud.convert(x, "miles", "km") : Units miles and km are not convertible


Sé que esto es muy tarde, pero las medidas del paquete tienen una función conv_unit() que puede ser lo que estás buscando. Usted ingresa el valor imperial que tiene, de qué unidad está convirtiendo (por ejemplo, ''pies'') y a qué desea convertir (por ejemplo, ''km''). Tiene una variedad de diferentes dimensiones (no solo longitud).