r语言 - 当有许多数据集交叉引用时,如何使代码高效?



我的脚本目前非常混乱,我想知道是否有更好的方法来做到这一点;

我正在试着计算产品的最终价格。这是我采取的步骤;

数据集A包含所有每年变化的产品,数据集B包含同样每年变化的产品的基本价格。

  1. 在数据集A中,通过匹配数据集b中的产品找到产品基础价格。
  2. 在数据集A中,对基准价格应用多种变量,这些调整每年都会发生变化。我目前正在手动输入变量。
  3. 修改后,这是我的最终价格。

数据集A有列product。数据集B有product和base.price两列。

变异1 =基价满足条件需调整10%。变型2 =在变型1之后,如果满足条件,将基准价格调整为5%。变型3 =在变型1和2之后,如果满足条件,基价将调整8%。

library(tidyverse)
####creating sample database 
product <- c("pants", "shirt", "boots", "dress")
databaseA<-data.frame(product)
base.price <- c(10, 8, 9,16)
databaseB<-data.frame(product,base.price)
###
datasetAB<-dplyr::left_join(datasetA, datasetB, by = c("product"="product"))
#variation 1
datasetAB<-datasetAB%>%mutate(baseprice1=base.price*1.1)
#variation 2
datasetAB<-datasetAB%>%mutate(baseprice2=baseprice1*1.05)
#variation 3
datasetAB<-datasetAB%>%mutate(baseprice3=baseprice2*1.08)

我试图锻炼,如果有一个更好的方法这样做,而不是导入这么多的数据集和引用所有不同的数据集在我的代码。因为它每年都在变化,所以数据集太多了。

我很抱歉,我没有足够的声誉来恰当地展示。

如果您的示例包含包含这些条件的进一步计算,则肯定会有所帮助。不过,我敢说你最好使用"final_price"。功能到你的产品

如果你坚持把所有可能的价格都放在一个数据框架中,那么我建议你只在一个数据框架中添加列,这样你就有product,base.price,price.conditionA等列。

最新更新