Использование dplyr
z%>%mutate(Treatment=if_else(Treatment=="B",paste0("B",Period),Treatment))
1 BBA 1 B1
2 BBA 2 B2
3 BBA 3 A
4 ABB 1 A
5 ABB 2 B2
6 ABB 3 B3
Редактировать
Вторая версия:
cond1 = z$Sequence=="BBA" & z$Treatment=="B"
cond2 = z$Sequence=="ABB" & z$Treatment=="B"
cond3 = z$Sequence=="BAB" & z$Treatment=="B"
z$Treatment[cond1]=paste0(z$Treatment[cond1],z$Period[cond1])
z$Treatment[cond2]=paste0(z$Treatment[cond2],z$Period[cond2]-1)
z$Treatment[cond3]=paste0(z$Treatment[cond3],
ifelse(z$Period[cond3]>2,2,1))
> z
Sequence Period Treatment
2 BBA 1 B1
3 BBA 2 B2
4 BBA 3 A
5 ABB 1 A
6 ABB 2 B1
7 ABB 3 B2
8 BAB 1 B1
9 BAB 2 A
10 BAB 3 B2
данные:
structure(list(Sequence = c("BBA", "BBA", "BBA", "ABB", "ABB",
"ABB", "BAB", "BAB", "BAB"), Period = c(1, 2, 3, 1, 2, 3, 1,
2, 3), Treatment = c("B1", "B2", "A", "A", "B1", "B2", "B1",
"A", "B2")), row.names = 2:10, class = "data.frame")