residuo@soiow m@iii@g oii gm@ii@com
2020-Apr-17 15:40 UTC
[R-es] Convertir lista de precios a dolares por gramo
Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20200417/11369880/attachment.html>
Emilio L. Cano
2020-Apr-17 15:55 UTC
[R-es] Convertir lista de precios a dolares por gramo
Hola, Hay muchas formas de hacerlo en una sola línea. A mí me gusta con dplyr, te pego debajo un ejemplo reproducible Salud, 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)) ??> El 17 abr 2020, a las 17:40, residuo.solow en gmail.com escribió: > > Javier: > > Si lo empecé a hacer con if anidados pero me queda gigantesco. > > Saludos, > > Sebastián. > > Enviado desde Correo <https://go.microsoft.com/fwlink/?LinkId=550986> para Windows 10 > > De: Javier Marcuzzi <mailto:javier.ruben.marcuzzi en gmail.com> > Enviado: jueves, 16 de abril de 2020 19:16 > Para: Sebastian Kruk <mailto:residuo.solow en gmail.com> > CC: Lista R <mailto:r-help-es en r-project.org> > Asunto: Re: [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 <mailto: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 <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es <https://stat.ethz.ch/mailman/listinfo/r-help-es> > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es <https://stat.ethz.ch/mailman/listinfo/r-help-es>[[alternative HTML version deleted]]
Marcelino De La Cruz Rot
2020-Apr-17 16:46 UTC
[R-es] Convertir lista de precios a dolares por gramo
Hola: Tambi?n se podr?a hacer con R base, usando la funci?n match: precios$Peso.gr <- precios$Peso * ratios$Ratio[match(precios$Unidad, ratios$Unidad)] precios$Precio.S <- precios$Precio * tipos$TC[match(precios$Pa?s, tipos$Pa?s)] precios$Precio.S.gr <- precios$Precio.S/precios$Peso.gr precios[,c("Producto", "Pa?s", "Precio.S.gr")] Saludos ________________________________ De: R-help-es <r-help-es-bounces en r-project.org> en nombre de Emilio L. Cano <emilopezcano en gmail.com> Enviado: viernes, 17 de abril de 2020 17:55 Para: residuo.solow en gmail.com <residuo.solow en gmail.com> Cc: Lista R <r-help-es en r-project.org> Asunto: Re: [R-es] Convertir lista de precios a dolares por gramo Hola, Hay muchas formas de hacerlo en una sola l?nea. A m? me gusta con dplyr, te pego debajo un ejemplo reproducible Salud, 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)) ??> El 17 abr 2020, a las 17:40, residuo.solow en gmail.com escribi?: > > Javier: > > Si lo empec? a hacer con if anidados pero me queda gigantesco. > > Saludos, > > Sebasti?n. > > Enviado desde Correo <https://go.microsoft.com/fwlink/?LinkId=550986> para Windows 10 > > De: Javier Marcuzzi <mailto:javier.ruben.marcuzzi en gmail.com> > Enviado: jueves, 16 de abril de 2020 19:16 > Para: Sebastian Kruk <mailto:residuo.solow en gmail.com> > CC: Lista R <mailto:r-help-es en r-project.org> > Asunto: Re: [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 <mailto: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 <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es <https://stat.ethz.ch/mailman/listinfo/r-help-es> > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es <https://stat.ethz.ch/mailman/listinfo/r-help-es>[[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]]
Javier Marcuzzi
2020-Apr-18 02:05 UTC
[R-es] Convertir lista de precios a dolares por gramo
Sebastian Sí, es gigantesco anidar if, pero hay una gran ventaja, cuándo hay un caso raro, un impuesto o cotización muy particular, por ejemplo, ahora en Argentina tenemos varios valores para las monedas, cuestiones que en un país normal no existe, en ese esquema, if permite continuar trabajando, las herramientas pensadas para lo normal como son las otras que le sugieren entiendo que nunca contemplarán conversiones económicas tan particulares. El if, en una forma tradicional permite de forma sencilla meterse en esos recovecos donde otras herramientas requieren construir una función, una escritura más compleja, aunque la complejidad muchas veces es costumbre, forma de trabajo, etc. E mi caso if me permite ir probando por partes, podrá ser ineficiente, pero ante una complicación puedo buscarle la vuelta. Javier Rubén Marcuzzi El vie., 17 abr. 2020 a las 12:40, <residuo.solow en gmail.com> escribió:> Javier: > > > > Si lo empecé a hacer con if anidados pero me queda gigantesco. > > > > Saludos, > > > > Sebastián. > > > > Enviado desde Correo <https://go.microsoft.com/fwlink/?LinkId=550986> > para Windows 10 > > > > *De: *Javier Marcuzzi <javier.ruben.marcuzzi en gmail.com> > *Enviado: *jueves, 16 de abril de 2020 19:16 > *Para: *Sebastian Kruk <residuo.solow en gmail.com> > *CC: *Lista R <r-help-es en r-project.org> > *Asunto: *Re: [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]]