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

R语言区块内处理随机分配问题:现有代码存疑需解决

区块内随机分配处理的R实现方案

咱们先从构建初始数据框开始,用下面的代码就能生成包含区块(block)和位置(position)的基础数据:

design <- read.table(text = "block position 1 1 1 2 1 3 1 4 2 1 2 2 2 3 2 4", header = TRUE)

接下来要实现的是每个区块内随机分配四种处理,咱们可以这么操作:

# 定义4种处理类型
treatment <- letters[1:4]
# 设置随机种子,确保结果可以复现
set.seed(2)
# 针对2个区块分别随机打乱处理序列,再转为向量添加到数据框中
design$treatment <- as.vector(replicate(2,sample(treatment, length(treatment))))

运行完上面的代码后,就能得到每个区块内处理随机分配好的数据框啦,输出结果如下:

> design
  block position treatment
1     1        1         a
2     1        2         c
3     1        3         b
4     1        4         d
5     2        1         d
6     2        2         c
7     2        3         a
8     2        4         b

简单说下逻辑:replicate(2, sample(treatment, length(treatment)))会针对2个区块,分别对处理向量做一次随机打乱,再用as.vector()把二维的结果转成一维向量,刚好能和数据框的行数匹配,完美实现单个区块内的处理随机分配需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:20:42