0

假设我有两个这样的数据框:

df1 <- data.frame(
customer = c('john','sally','bill','david','sam','jake'),
coupon_id = c('a',NA,'d',NA,NA,'c'),
final_price = c(100,50,40,25,100,200))

df2 <- data.frame(
coupon_id = c('a','b','c','d'),
prct_off = c(.15,.2,.25,.50))

目标:有条件地测试df1的每一行是否有优惠券。如果是这样,则乘以它在 df2 数据框中的百分比,以将最终价格降低指定的数量。如果它没有保持最终价格不变。

我想我已经接近了,但我没有明智地做事。我正在做类似的事情,

df1$final_price <- ifelse(df1$coupon_id %in% df2$coupon_id, df1$final_price == df1$final_price*(1-df2$prct_off),df1$final_price)

但这不能正常工作。

帮助?

4

0 回答 0