I have a translation table (trans_df
):
trans_df <- read.table(text = "rs1065852 rs201377835 rs28371706 rs5030655 rs5030865 rs3892097 rs35742686 rs5030656 rs5030867 rs28371725 rs59421388
G C G A C C T CTT T C C
G C G A C C del CTT T C C
A C G A C T T CTT T C C
del del del del del del del del del del del
G C G del C C T CTT T C C
G C G A C C T CTT G C C
G C G A C C T del T C C
A C G A C C T CTT T C C
G C A A C C T CTT T C C
G C G A C C T CTT T C T
G C G A C C T CTT T T C",header=TRUE, stringsAsFactors = FALSE, colClasses = "character")
and input
:
input <- read.table(text = "rs1065852 rs201377835 rs28371706 rs5030655 rs5030865 rs3892097 rs35742686 rs5030656 rs5030867 rs28371725 rs59421388
+ G|A C G|A A C T|C T CTT T C|T C", header = TRUE, stringsAsFactors = FALSE, colClasses = "character")
I want to find the input row in the trans_df using regular expression. I have achieved it by position:
Reduce(intersect,lapply(seq(1, ncol(trans_df)),
function(i) {grep(pattern = input[, i],
trans_df[, i])}))
Is there any way to do this where pattern = input? Please advise.