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

如何基于百分比列表逐步递减初始数值?

实现初始值依次乘以百分比的递减操作

你可以用R语言中的cumprod()函数高效完成这个需求,它能计算向量的累积乘积,再结合初始值就能得到每一步依次相乘后的结果。

方法一:基础R实现

starting_value <- 127
pcts <- c(0.64, 0.07, 0.44, 0.79, 0.67, 0.12, 0.58, 0.56, 0.59, 0.21)

# 计算每一步的递减结果
step_results <- starting_value * cumprod(pcts)

# 合并为数据框查看完整过程
result_df <- data.frame(
  所用百分比 = pcts,
  当前值 = step_results
)

print(result_df)

cumprod(pcts)会生成一个累积乘积向量:第一个元素是0.64,第二个是0.64×0.07,第三个是0.64×0.07×0.44……以此类推,再乘以初始值127就得到每一步的递减结果。

方法二:tidyverse(dplyr)实现

如果你习惯用tidyverse工具链,可以用dplyr的mutate()来生成结果列:

library(dplyr)

starting_value <- 127

data.frame(pcts = c(0.64, 0.07, 0.44, 0.79, 0.67, 0.12, 0.58, 0.56, 0.59, 0.21)) %>%
  mutate(
    累积百分比 = cumprod(pcts),
    当前值 = starting_value * 累积百分比
  )

运行后会直接得到包含原始百分比、累积百分比和每一步当前值的数据框。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:35:16