[R-es] Convertir lista de precios a dolares por gramo
Emilio L. Cano
em||opezc@no @end|ng |rom gm@||@com
Vie Abr 17 08:50:19 CEST 2020
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 using 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 using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es