gpt4 book ai didi

r - 在向量 (R) 中找出所有可能的和

转载 作者:行者123 更新时间:2023-12-04 11:16:38 26 4
gpt4 key购买 nike

我有一个这样的美元值向量 (vec):

[1]  460.08 3220.56 1506.20 1363.76 1838.00 1838.00 3684.94 2352.66 1606.02
[10] 1840.05 518.98 1603.53 1556.94 347.32 253.16 12.95 1828.81 1896.32
[19] 4962.60 426.33 3237.04 1601.40 2004.57 183.80 1570.75 3622.96 230.04
[28] 426.33 3237.04 1601.40 2004.57 183.80

如果我有一笔费用是由这些数字的总和产生的,我该如何找到它?例如,如果电荷是 6747.81,那么它一定是 1506.20 + 3237.04 + 2004.57(第 3、29 和 31 个向量元素)的结果。给定总和,我如何求解这些向量元素?

我想找到所有可能的总和就是答案,然后将其与导致它的矢量元素相匹配。

我尝试过使用 combn(vec, 3) 找到所有 3 个,但这并不能完全满足我的要求。

最佳答案

您需要在 combn 之后使用 colSums(或 apply)来获取总和。

set.seed(100)
# Generate fake data
vec <- rpois(10, 20)
# Get all combinations of 3 elements
combs <- combn(vec, 3)
# Find the resulting sums
out <- colSums(combs)
# Making up a value to search for
val <- vec[2]+vec[6]+vec[8]
# Find which combinations lead to that value
id <- which(out == val)
# Pull out those combinations
combs[,id]

显示此示例结果的一些输出

> vec
[1] 17 12 23 20 21 17 21 18 22 22
> val
[1] 47
> combs[,id]
[,1] [,2]
[1,] 17 12
[2,] 12 17
[3,] 18 18

编辑:刚刚看到不一定限制使用 3 个项目。人们可以通过对每个可能的样本量进行推广来概括这一点,但我现在没有时间这样做。即使是中等规模的问题,它也会相当慢。

关于r - 在向量 (R) 中找出所有可能的和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25001895/

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