You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中按照分级折扣规则计算商品的最终售价?

你可以使用R中dplyr包的case_when函数实现区间匹配计算,完整实现代码如下:

1. 加载依赖包

library(dplyr)

2. 构造原始数据集

df <- tribble(
  ~product_id, ~price,  
  '123',        35,                
  '445',        98, 
  '654',        194, 
  '135',        2000, 
  '156',         10, 
)

3. 计算折扣率和最终价格

df_result <- df %>%
  mutate(
    # 按给定规则逐行匹配折扣率,case_when会按顺序返回第一个符合条件的对应值
    discount_rate = case_when(
      price < 10 ~ 3,
      price >= 10 & price < 20 ~ 5,
      price >= 20 & price < 30 ~ 7,
      price >= 30 & price < 90 ~ 10,
      price >= 90 & price < 190 ~ 20,
      price >= 190 & price < 2000 ~ 30,
      price >= 2000 ~ 50
    ),
    # 套用给定公式计算最终售价
    final_price = price * (100 - discount_rate) / 100
  )

运行后得到的df_result和你要求的输出结果完全一致。如果后续需要调整价格区间或者折扣率,直接修改case_when里的对应规则即可。

内容的提问来源于stack exchange,提问作者datazang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:15:08