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-boun...@r-project.org> en nombre de Emilio L. Cano <emilopezc...@gmail.com> Enviado: viernes, 17 de abril de 2020 17:55 Para: residuo.so...@gmail.com <residuo.so...@gmail.com> Cc: Lista R <r-help-es@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.so...@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.marcu...@gmail.com> > Enviado: jueves, 16 de abril de 2020 19:16 > Para: Sebastian Kruk <mailto:residuo.so...@gmail.com> > CC: Lista R <mailto:r-help-es@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.so...@gmail.com > <mailto:residuo.so...@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@r-project.org <mailto:R-help-es@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@r-project.org <mailto:R-help-es@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@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es