Если вы не уверены в пробеле между ZZ и кодом, для всех различных случаев можно использовать следующее
address <- c("AP 12","RA 21","ZZLA 23","KS 12","ZZ LL 12")
mod.address<-gsub("[Z][Z]\\s{0,}","",address)
state <- substr(mod.address,1,2)
print(state)
# OUTPUT
# [1] "AP" "RA" "LA" "KS" "LL"