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

如何从60名受试者中生成3人分组并计算组决策的和与均值?

解决R语言分组计算决策值的问题

没问题,我来帮你完成从打乱分组到计算每组决策值和与均值的完整流程!

步骤1:准备数据与打乱受试者

你已经完成了打乱受试者的代码,这里再确认下:

# 生成60名受试者的ID
students <- 1:60
# 打乱顺序
rand_students <- sample(students, length(students))

假设你已经有了对应60名受试者的决策值向量(比如命名为decisions,顺序和原始students的ID对应),接下来就可以分组计算了。

步骤2:分组并提取决策值

我们可以用split()配合gl()来把打乱后的ID分成20个每组3人的小组:

# 将打乱后的受试者ID分成20个每组3人的小组
grouped_students <- split(rand_students, gl(n = 20, k = 3))

这里gl(20, 3)会生成一个包含20个水平、每个水平重复3次的向量,split()会根据这个向量把rand_students拆分成20个元素的列表,每个元素对应一个3人组的ID。

步骤3:计算每组的决策值之和与均值

用sapply()遍历每个小组,提取对应的决策值并计算统计量:

# 计算每组决策值的总和
group_sums <- sapply(grouped_students, function(group) {
  sum(decisions[group])
})

# 计算每组决策值的均值
group_means <- sapply(grouped_students, function(group) {
  mean(decisions[group])
})

可选:整理成直观的数据框

如果想把分组信息、成员ID、统计结果整合到一起,可以生成一个数据框:

group_results <- data.frame(
  组编号 = paste0("组", names(grouped_students)),
  成员ID = sapply(grouped_students, paste, collapse = ", "),
  决策值总和 = group_sums,
  决策值均值 = round(group_means, 2)  # 保留两位小数更美观
)

# 查看结果
print(group_results)

注意事项

如果你的决策值存储在数据框中(比如数据框名为exp_data,决策值列名为decision),只需要把代码里的decisions[group]替换成exp_data$decision[group]即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:59:31