---
title: "Single-Factor Design: RCBD"
description: > 
  Randomized Complete Block Design
vignette: >
  %\VignetteIndexEntry{DoE-1_RCBD}
  %\VignetteEncoding{UTF-8}
  %\VignetteEngine{quarto::html}
knitr:
  opts_chunk: 
    collapse: true
    comment: '#>'
    echo: false
    warning: false
    message: false
editor_options: 
  chunk_output_type: console
---

```{r setup, include=FALSE}
source("https://raw.githubusercontent.com/Flavjack/inti/master/pkgdown/favicon/docs.r")
```

Planning an experiment follows a reproducible routine:

1. **Load required libraries:** Load `inti`, `knitr`, and `dplyr` packages.
1. **Define factor levels:** Set up lists with genotypes, treatments, and management factors.
1. **Dispatch design generator:** Choose between CRD, RCBD, Split-plot, or Augmented designs.
1. **Plot the field sketch:** Verify spatial layouts and serpentine/zigzag sequences.
1. **Label design:** Design the experimental labels to facilitate the data collection.
5. **Export to Field Book app:** Generate field-ready sheets with trait parameters.

```{r}
#| echo: true

# Install packages and dependencies

library(inti)
library(dplyr)
library(huito)
```

## Randomized Complete Block Design (RCBD)

The Randomized Complete Block Design is recommended when an environmental gradient is present in the field, grouping experimental units into homogeneous blocks to control spatial variability.

```{r, echo=TRUE}
# 1. Define factors: fertilization doses
factors <- list(
  fertilization = c("0", "50", "100")
)

# 2. Generate RCBD layout
design <- design_repblock(
  nfactors = 1,
  factors = factors,
  type = "rcbd",
  rep = 4,
  zigzag = TRUE,
  seed = 2026
)

# Fieldbook preview
fb <- design$fieldbook 

fb %>% 
  knitr::kable(caption = "Fieldbook preview")

# Field layout visualization
tarpuy_plotdesign(
  data = design,
  factor = "fertilization",
  fill = c("plots", "ntreat")
)
```

# Label 

The experimental field book generated by the design is used as the input data for label creation. Each row represents an experimental unit, allowing the automatic generation of individualized labels.

# Customize the label layout

The label layout can be customized by combining text, images and QR codes. Each layer can use values from the experimental field book, allowing automatic generation of labels for every experimental plot.

Load package and import fonts.

```{r, echo=TRUE}
font <- c("Permanent Marker", "Tillana", "Courgette")

huito_fonts(font)
```

> You can find more fonts in <https://fonts.google.com/>

# Label design

```{r}
#| echo: true

label <- fb %>%  
  label_layout(size = c(10, 2.5)
               , border_color = "blue"
               ) %>%
  include_image(
    value = "https://flavjack.github.io/inti/img/inkaverse.png"
    , size = c(2.1, 2.4)
    , position = c(1.2, 1.25)
    # , opts = list("image_scale(200)", "image_noise()")
    ) %>%
  include_barcode(
     value = "qrcode"
     , size = c(2.5, 2.5)
     , position = c(8.2, 1.25)
     ) %>%
  include_text(value = "INKAVERSE"
               , position = c(4.6, 2)
               , size = 20
               , font = font[1]
               , fontface = "bold"
               , color = "red"
               ) %>%
  include_text(value = "Fertilization"
               , position = c(2.7, 1.2)
               , size = 12
               , font = font[2]
               , opts = list(hjust = 0.0, vjust = 0.0) 
               , color = "black"
               , prefix = "Fertilization: "
               , fontface = "bold"
               ) %>%
    include_text(value = "ntreat"
               , position = c(4.5, 0.5)
               , size = 12
               , color = "#009966"
               , font = font[2]
               , prefix = "Ntreat: "
               , fontface = "bold"
               ) %>% 
  include_text(value = "plots"
               , position = c(9.7, 1.25)
               , angle = 90
               , size = 12
               , color = "brown"
               , font = font[3]
               , prefix = "Plot: "
               ) 
```

## Label preview

The preview mode `label_print(mode = "preview")` generate a example of the label design from a random row of the data set.

```{r}
#| echo: true

label %>% 
  label_print(mode = "preview")
```

## Generate the complete labels

If you want generate the complete labels list, change: `label_print(mode = "complete")`.

```{r echo = TRUE}
#| eval: false

label %>% 
  label_print(mode = "complete"
              , filename = "horizontal-DBCA-1"
              , nlabels = 12)
```

<!-- <embed src="horizontal-DBCA-1.pdf" height="600" width="100%" alt="pdf" pluginspage="http://www.adobe.com/products/acrobat/readstep2.html"> -->


