d <-
  data.frame(
    ID = 1:3,
    code1 = c("033", "0331", "0033"),
    code2 = c("034", "0354", "0345")
  )
d.mat <- as.matrix(d[,-1])
pattern.per.column <- c("^033", "^034")
pattern.per.column <- paste0("^03", 3:4) # 同上；若pattern有規則的話
mat.bool <-
  matrix(logical(1), nrow = nrow(d.mat), ncol = ncol(d.mat))
for (j in 1:ncol(d.mat)) {
  mat.bool[, j] <- grepl(pattern.per.column[j], d.mat[, j])
}
cbind(d, mat.bool) # 為所求
