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

R语言实现两次掷骰子求和:合并输出或分组存储结果的问题

解决R语言两次掷骰子点数求和的输出问题

问题说明

需要实现两次掷骰子的点数求和,达成两个输出目标:

  • 目标1:将所有求和结果合并为一个单一向量输出(预期结果:2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 10 6 7 8 9 10 11 7 8 9 10 11 12)
  • 目标2:将每组第一次掷骰子对应的求和结果分别存储为outcome1、outcome2…outcome6(例如outcome1 = c(2,3,4,5,6,7),outcome2 = c(3,4,5,6,7,8)等)

现有代码的问题:使用outcomes(i)的赋值方式不符合R语法,无法正确创建分组变量,且循环内直接print导致结果分散输出。

解决方案代码

# 定义骰子点数
dice <- 1:6

# 初始化列表存储所有分组结果(便于后续合并操作)
outcome_list <- list()

# 循环处理每个骰子点数
for (i in seq_along(dice)) {
  # 计算当前点数与第二次掷骰子的求和结果
  current_outcome <- dice[i] + 1:6
  
  # 目标2:动态创建outcome1到outcome6独立变量
  assign(paste0("outcome", i), current_outcome)
  
  # 将结果存入列表,用于后续合并
  outcome_list[[i]] <- current_outcome
}

# 目标1:合并所有结果为单一向量
all_outcomes <- unlist(outcome_list)
# 输出合并后的结果
print(all_outcomes)

# 验证分组变量(示例:查看outcome1)
print(outcome1)

代码解释

  • 分组变量创建:使用*assign()*函数配合*paste0()*动态生成outcome1到outcome6,paste0负责拼接变量名,assign完成结果赋值。
  • 合并结果:先通过列表统一存储所有分组结果,再用*unlist()*将列表转换为单一向量,得到合并后的所有求和结果。
  • 优化建议:如果不需要独立变量,直接使用列表outcome_list管理分组结果会更便于后续统计、修改等操作,比分散的独立变量更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:21:07