Это хороший вариант использования для separate
от tidyr:
library(tidyr)
ID <- c("B1T1", "B1T2", "B2T1", "B3T1", "B4T1", "B4T2")
val <- rnorm(6)
df <- data.frame(ID = ID, val = val)
df
#> ID val
#> 1 B1T1 0.2990410
#> 2 B1T2 -0.1363163
#> 3 B2T1 -0.5500596
#> 4 B3T1 0.7734307
#> 5 B4T1 -0.7522459
#> 6 B4T2 -0.5597933
df %>%
separate(ID, sep = 2, into = c("Group", "Treatment"))
#> Group Treatment val
#> 1 B1 T1 0.2990410
#> 2 B1 T2 -0.1363163
#> 3 B2 T1 -0.5500596
#> 4 B3 T1 0.7734307
#> 5 B4 T1 -0.7522459
#> 6 B4 T2 -0.5597933
Создано в 2020-04-07 пакетом Представить (v0.3.0)
Оттуда вы можете поменять свои группы «В» и процедуры отдельно.