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

在R中使用agricolae创建CRD布局报错及expand.grid绘图求助

解决agricolae包CRD设计错误及expand.grid布局绘图问题

一、修复agricolae包的CRD设计错误

你遇到的错误核心是design.crd函数的参数使用错误:第二个参数replicates需要传入单个数值(表示每个处理的重复次数),而非重复编号的序列(如1:6)。传入1:6时,函数会误将其当作8个处理对应的重复次数列表,导致行数不匹配。

正确代码如下:

# 安装并加载agricolae包
install.packages("agricolae")
library(agricolae)

# 定义处理组和每个处理的重复次数
treatments <- c("A", "B", "C", "D", "E", "F", "G", "H")
rep_num <- 6  # 每个处理重复6次

# 生成CRD布局
layout <- design.crd(treatments, rep_num)

# 打印布局结果
print(layout)

# 绘制布局图
plot(layout)

运行后即可生成8个处理各6次重复的完全随机设计,且能正常调用plot()函数生成官方布局图。

二、绘制expand.grid生成的设计布局

若要基于expand.grid生成的设计矩阵绘图,可借助ggplot2包模拟类似agricolae的布局效果,步骤如下:

library(ggplot2)

# 定义处理组和重复编号
treatments <- c("A", "B", "C", "D", "E", "F", "G", "H")
replicates <- 1:6

# 生成设计矩阵并随机化(符合CRD完全随机的要求)
design <- expand.grid(Treatment = treatments, Replicate = replicates)
design <- design[sample(nrow(design)), ]  # 打乱顺序模拟随机分配
design$plot_id <- 1:nrow(design)  # 添加小区编号

# 绘制布局可视化图
ggplot(design, aes(x = plot_id, y = 1, fill = Treatment)) +
  geom_tile(color = "black", width = 0.8, height = 0.8) +
  geom_text(aes(label = Treatment), size = 4) +
  scale_x_continuous(breaks = design$plot_id) +
  theme_minimal() +
  theme(axis.title.y = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks.y = element_blank(),
        panel.grid = element_blank()) +
  labs(x = "小区编号", title = "完全随机设计(CRD)布局")

该代码会生成横向瓷砖图,用填充色区分处理组,瓷砖内标注处理名称,还原CRD布局的随机化可视化效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:00:15