После группировки по 'cod' создайте 'pmat_123', взяв кумулятивную сумму логического выражения
library(dplyr)
df1 %>%
group_by(cod) %>%
mutate(pmat_123 = cumsum(Programa == 'PMAT'))
# A tibble: 34 x 5
# Groups: cod [2]
# cod ano MUNICIPIO Programa pmat_123
# <int> <int> <chr> <chr> <int>
# 1 110001 1998 ALTA FLORESTA D OESTE "" 0
# 2 110001 1999 ALTA FLORESTA D OESTE "" 0
# 3 110001 2000 ALTA FLORESTA D OESTE "" 0
# 4 110001 2001 ALTA FLORESTA D OESTE "" 0
# 5 110001 2002 ALTA FLORESTA D OESTE PMAT 1
# 6 110001 2003 ALTA FLORESTA D OESTE "" 1
# 7 110001 2004 ALTA FLORESTA D OESTE "" 1
# 8 110001 2005 ALTA FLORESTA D OESTE "" 1
# 9 110001 2006 ALTA FLORESTA D OESTE PMAT 2
#10 110001 2007 ALTA FLORESTA D OESTE "" 2
# ... with 24 more rows
данные
df1 <- structure(list(cod = c(110001L, 110001L, 110001L, 110001L, 110001L,
110001L, 110001L, 110001L, 110001L, 110001L, 110001L, 110001L,
110001L, 110001L, 110001L, 110001L, 110001L, 110001L, 110001L,
110002L, 110002L, 110002L, 110002L, 110002L, 110002L, 110002L,
110002L, 110002L, 110002L, 110002L, 110002L, 110002L, 110002L,
110002L), ano = c(1998L, 1999L, 2000L, 2001L, 2002L, 2003L, 2004L,
2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L,
2014L, 2015L, 2016L, 1998L, 1999L, 2000L, 2001L, 2002L, 2003L,
2004L, 2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L
), MUNICIPIO = c("ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE",
"ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE",
"ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE",
"ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE",
"ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE",
"ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE",
"ALTA FLORESTA D OESTE", "ALTA FLORESTA D OESTE", "ARIQUEMES",
"ARIQUEMES", "ARIQUEMES", "ARIQUEMES", "ARIQUEMES", "ARIQUEMES",
"ARIQUEMES", "ARIQUEMES", "ARIQUEMES", "ARIQUEMES", "ARIQUEMES",
"ARIQUEMES", "ARIQUEMES", "ARIQUEMES", "ARIQUEMES"), Programa = c("",
"", "", "", "PMAT", "", "", "", "PMAT", "", "", "", "PMAT", "",
"", "", "", "", "", "", "", "", "", "", "", "PMAT", "", "", "",
"", "", "", "", "")), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",
"25", "26", "27", "28", "29", "30", "31", "32", "33", "34"))