gpt4 book ai didi

在 R 中复制 excel 求解器

转载 作者:行者123 更新时间:2023-12-04 13:31:36 24 4
gpt4 key购买 nike

我想知道是否有一个简单的函数可以解决 R 中的以下问题:
假设我有以下数据框:

  • 具有值 c(10, 35, 90)
  • 的变量“A”
  • 变量 'B' 的值为 c(3, 4, 17, 18, 50, 40, 3)

  • 现在我知道 B 中各种值的总和等于 A 中的值,例如'3 + 4 + 3 = 10' 和 '17 + 18 = 35',它们在完整数据集中总是平衡的。
    问题
    是否有一个函数可以在 B 中对这些值求和,我想通过反复试验,并将正确求和的值与 A 相匹配?例如,该函数尝试对 3 + 4 + 18 求和,即 25 并重试,因为 25 不是 A 中的值。
    我自己尝试了几种解决方案,但我经常遇到的一个问题是 A 的观察值总是比 B 少。
    如果有人能在这里帮助我,我将不胜感激!如果需要更多信息,请告诉我。
    干杯,
    大安
    编辑
    这个例子是简化的数字。实际上,它是一个大型数据集,因此我正在寻找可扩展的解决方案。
    再次感谢!

    最佳答案

    这是一个问题,称为 subset sum problem ,并且网上有大量关于如何使用动态规划或贪婪算法解决它的示例。
    为了给你一个有效的答案,包 adagio有一个实现:

    library(adagio)

    sums = c(10, 35, 90)
    values = c(3, 4, 17, 18, 50, 40, 3)


    for(i in sums){
    #we have to subset the values to be less than the value
    #otherwise the function errors:
    print(subsetsum(values[values < i], i))
    }
    每个总和的输出是一个列表,包含数组中的 val 和索引,因此您可以根据需要整理输出。

    关于在 R 中复制 excel 求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64792995/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com