Hi, dat <- structure(list(Cname = c("chiyyan", "saikiran", "niranjan", "yeswanth", "anitha", "krishna"), Wname = c("chyyan", "saikira", "nirnjan", "eswanth", "anita", "krisna")), .Names = c("Cname", "Wname"), class = "data.frame", row.names = c(NA, -6L)) output <- structure(list(Cname = c("chiyyan", "saikiran", "niranjan", "yeswanth", "anitha", "krishna"), Wname = c("chyyan", "saikira", "nirnjan", "eswanth", "anita", "krisna"), starting = c(1L, 1L, 0L, 1L, 0L, 0L), middle = c(0L, 0L, 1L, 0L, 0L, 1L), ending = c(0L, 0L, 0L, 0L, 1L, 0L)), .Names = c("Cname", "Wname", "starting", "middle", "ending"), class = "data.frame", row.names = c(NA, -6L)) #Here, I am not following the logic. output[1:2,] # Cname Wname starting middle ending #1 chiyyan chyyan 1 0 0 #2 saikiran saikira 1 0 0 ##1 for "ending"? You may try: library(Biostrings) res <- cbind(dat, setNames(as.data.frame(t( sapply(seq_len(nrow(dat)),function(i) {p1 <-pairwiseAlignment(dat[i,2],dat[i,1]); m1 <- as.matrix(p1); m2 <- matrix(0,nrow=1,ncol=3,dimnames=list(NULL,c("starting","middle","ending"))); me <- median(seq(ncol(m1))); vec1 <- c(floor(me),ceiling(me)); indx <- which(m1=="-"); if(indx < vec1[1]) {m2[,"starting"] <-1; m2} else if(indx > vec1[2]) {m2[,"ending"] <- 1; m2} else m2[,"middle"] <- 1; m2 }))), c("starting","middle","ending"))) res Cname Wname starting middle ending 1 chiyyan chyyan 1 0 0 2 saikiran saikira 0 0 1 3 niranjan nirnjan 0 1 0 4 yeswanth eswanth 1 0 0 5 anitha anita 0 0 1 6 krishna krisna 0 0 1 output Cname Wname starting middle ending 1 chiyyan chyyan 1 0 0 #here "i" 3rd letter missing from Wname. 2 saikiran saikira 1 0 0 3 niranjan nirnjan 0 1 0 4 yeswanth eswanth 1 0 0 5 anitha anita 0 0 1 6 krishna krisna 0 1 0 ## here "h" is the 5th letter. So, I am not sure about your classificiation of middle. In both "chiyyan" and "krishna", 4th letter is the middle one. So, I don't understand how you got 1 for "starting" in the case of "chiyyan" while 1 is "middle" for "krishna". A.K. Hi,Users I have troble in one task is give below plz...help me Cname Wname chiyyan chyyan saikiran saikira niranjan nirnjan yeswanth eswanth anitha anita krishna krisna here Cname means Correct name and Wname means Wrong name it's letter's missing,so in Wname column identify which place letter missing like starting,middle,ending place.if starting letter missing given numeric 1 remainings 0's.finaly out put is Cname Wname starting middle ending chiyyan chyyan 1 0 0 saikiran saikira 1 0 0 niranjan nirnjan 0 1 0 yeswanth eswanth 1 0 0 anitha anita 0 0 1 krishna krisna 0 1 0 plz...solve this