Sebastian Kruk
2020-Apr-16 21:48 UTC
[R-es] Convertir lista de precios a dolares por gramo
Estimados: Tengo tres data frame (datos inventados): A) Lista de precios de diferentes productos por paises. Producto País Precio Unidad Peso A AR 10 kg 12 B BR 210 lb 0,5 C UY 3,5 kg 90 A BR 3 kg 3 C CO 345 lb 7,6 A CO 1200 gr 23000 B) Tipo de cambio por país País TC AR 12 BR 1,8 CO 45 UY 0,5 C)Ratio para pasar a gr. Unidad Ratio kg 1000 lb 0,89 gr 1 Quiero obtener un nuevo data frame en que todos los precios estén convertidos a dólares y expresados en gramos Obtendría los valores de la siguiente manera: Producto País Precio A AR 10x12/(12x1000) B BR 210x1,8/(0,5/0,89) C UY 3,5x0,5/(90x1000) A BR 3x1,8x3/1000 C CO 345x4,5/(7,6*0,89) A CO 1200x4,5/(23000x1) ¿Hay alguna forma sencilla de hacerlo? Saludos, Sebastián. [[alternative HTML version deleted]]
Javier Marcuzzi
2020-Apr-16 22:16 UTC
[R-es] Convertir lista de precios a dolares por gramo
Estimado Sebastian Kruk Desde mi punto de vista es muy simple, varios If anidados, o en su defecto el condicional que a usted le resulte más cómodo. Javier Rubén Marcuzzi El jue., 16 abr. 2020 a las 18:49, Sebastian Kruk (<residuo.solow en gmail.com>) escribió:> Estimados: > > Tengo tres data frame (datos inventados): > > A) Lista de precios de diferentes productos por paises. > > Producto País Precio Unidad Peso > A AR 10 kg 12 > B BR 210 lb 0,5 > C UY 3,5 kg 90 > A BR 3 kg 3 > C CO 345 lb 7,6 > A CO 1200 gr 23000 > > B) Tipo de cambio por país > País TC > AR 12 > BR 1,8 > CO 45 > UY 0,5 > > C)Ratio para pasar a gr. > Unidad Ratio > kg 1000 > lb 0,89 > gr 1 > > Quiero obtener un nuevo data frame en que todos los precios estén > convertidos a dólares y expresados en gramos > > Obtendría los valores de la siguiente manera: > > Producto País Precio > A AR 10x12/(12x1000) > B BR 210x1,8/(0,5/0,89) > C UY 3,5x0,5/(90x1000) > A BR 3x1,8x3/1000 > C CO 345x4,5/(7,6*0,89) > A CO 1200x4,5/(23000x1) > > ¿Hay alguna forma sencilla de hacerlo? > > Saludos, > > Sebastián. > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Emilio L. Cano
2020-Apr-17 06:50 UTC
[R-es] Convertir lista de precios a dolares por gramo
Hola Sebastián, Se puede hacer de muchas formas. Para mí la más cómoda y rápida es con el paquete dplyr, te pego debajo ejemplo reproducible. Un saludo, Emilio L. Cano http://emilio.lcano.com ?? precios <- read.table( text ="Producto País Precio Unidad Peso A AR 10 kg 12 B BR 210 lb 0,5 C UY 3,5 kg 90 A BR 3 kg 3 C CO 345 lb 7,6 A CO 1200 gr 23000", dec = ",", header = TRUE, stringsAsFactors = FALSE) tipos <- read.table( text ="País TC AR 12 BR 1,8 CO 45 UY 0,5", dec = ",", header = TRUE, stringsAsFactors = FALSE) ratios <- read.table( text = "Unidad Ratio kg 1000 lb 0,89 gr 1", dec = ",", header = TRUE, stringsAsFactors = FALSE) library(dplyr) precios %>% inner_join(tipos) %>% inner_join(ratios) %>% mutate(Precio2 = Precio*TC/(Peso/Ratio)) ## SALIDA: Producto País Precio Unidad Peso TC Ratio Precio2 1 A AR 10.0 kg 12.0 12.0 1000.00 10000.000000 2 B BR 210.0 lb 0.5 1.8 0.89 672.840000 3 C UY 3.5 kg 90.0 0.5 1000.00 19.444444 4 A BR 3.0 kg 3.0 1.8 1000.00 1800.000000 5 C CO 345.0 lb 7.6 45.0 0.89 1818.059211 6 A CO 1200.0 gr 23000.0 45.0 1.00 2.347826> El 16 abr 2020, a las 23:48, Sebastian Kruk <residuo.solow en gmail.com> escribió: > > Estimados: > > Tengo tres data frame (datos inventados): > > A) Lista de precios de diferentes productos por paises. > > Producto País Precio Unidad Peso > A AR 10 kg 12 > B BR 210 lb 0,5 > C UY 3,5 kg 90 > A BR 3 kg 3 > C CO 345 lb 7,6 > A CO 1200 gr 23000 > > B) Tipo de cambio por país > País TC > AR 12 > BR 1,8 > CO 45 > UY 0,5 > > C)Ratio para pasar a gr. > Unidad Ratio > kg 1000 > lb 0,89 > gr 1 > > Quiero obtener un nuevo data frame en que todos los precios estén > convertidos a dólares y expresados en gramos > > Obtendría los valores de la siguiente manera: > > Producto País Precio > A AR 10x12/(12x1000) > B BR 210x1,8/(0,5/0,89) > C UY 3,5x0,5/(90x1000) > A BR 3x1,8x3/1000 > C CO 345x4,5/(7,6*0,89) > A CO 1200x4,5/(23000x1) > > ¿Hay alguna forma sencilla de hacerlo? > > Saludos, > > Sebastián. > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es[[alternative HTML version deleted]]