fork(1) download
  1. d <-
  2. data.frame(
  3. ID = 1:3,
  4. code1 = c("033", "0331", "0033"),
  5. code2 = c("034", "0354", "0345")
  6. )
  7. d.mat <- as.matrix(d[,-1])
  8. pattern.per.column <- c("^033", "^034")
  9. pattern.per.column <- paste0("^03", 3:4) # 同上;若pattern有規則的話
  10. mat.bool <-
  11. matrix(logical(1), nrow = nrow(d.mat), ncol = ncol(d.mat))
  12. for (j in 1:ncol(d.mat)) {
  13. mat.bool[, j] <- grepl(pattern.per.column[j], d.mat[, j])
  14. }
  15. cbind(d, mat.bool) # 為所求
  16.  
Success #stdin #stdout 0.22s 39824KB
stdin
Standard input is empty
stdout
  ID code1 code2     1     2
1  1   033   034  TRUE  TRUE
2  2  0331  0354  TRUE FALSE
3  3  0033  0345 FALSE  TRUE