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

如何在R中生成行和为100%的5%增量全组合DataFrame

生成符合条件的R DataFrame方案

要生成包含Blue、Red、Yellow、Green四列,每行和为100%且数值为5%增量的所有组合,可按以下步骤操作:

思路转换

由于所有数值都是5%的倍数,我们可以先将问题简化为非负整数求和问题:把每个百分比除以5,得到的整数需满足 a + b + c + d = 20(因为100/5=20),最后再将结果乘以5还原为百分比。

代码实现

# 生成0到20的整数序列(对应0%到100%,步长5%)
values <- 0:20

# 生成Blue、Red、Yellow三列的所有可能组合
temp_df <- expand.grid(Blue = values, Red = values, Yellow = values)

# 计算Green列的取值,确保四列整数之和为20
temp_df$Green <- 20 - temp_df$Blue - temp_df$Red - temp_df$Yellow

# 筛选出Green非负的合法行(排除负数百分比)
valid_df <- temp_df[temp_df$Green >= 0, ]

# 将整数转换为百分比(乘以5)
final_df <- valid_df * 5

验证结果

运行上述代码后,final_df 就包含了所有符合要求的组合,比如示例中的95 5 0 0对应整数组合19 1 0 0,满足19+1+0+0=20,转换后即为目标百分比。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 14:00:58