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

如何计算等比增量数据中两值的增量差值并判定结果?

解决方案

你的数值序列是前值两倍递增的,每个数值可表示为 初始值 × 2^k(k为增量步数,整数)。两个数值的增量步数差等于 log2(var1/var2),这个值就是var1比var2高的增量个数。我们只需判断这个差值是否≥3,即可设置test为TRUE。

修改后的dplyr代码如下:

library(dplyr)

testdata <- data.frame(
  var1 = c(0.25, 0.5, 2, 64, 32),
  var2 = c(0.064, 64, 32, 16, 0.128)
)

testdata %>%
  mutate(
    # 计算增量步数差
    increment_diff = log2(var1/var2),
    # 判断步数差是否≥3
    test = case_when(
      increment_diff >= 3 ~ TRUE,
      TRUE ~ FALSE
    )
  )

代码说明

  • log2(var1/var2):利用对数运算直接对应增量步数——因为每一步是数值翻倍,log₂的结果恰好是两个数之间的增量步数差。
  • 当步数差≥3时,test设为TRUE;其余情况为FALSE。

验证你的示例:

  • 第5行var1=32、var2=0.128:log2(32/0.128)≈7.965,大于3,test=TRUE;
  • 第4行var1=64、var2=16:log2(64/16)=2,小于3,test=FALSE,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 08:22:20