我有一个矢量看起来像:
SNP <- c("A/G","A/C","A/C","T/C","A/G","A/C","T/G","T/C","A/C","T/G")
Run Code Online (Sandbox Code Playgroud)
第二个向量(REF)是"SNP"中每个元素的两个字母之一的向量:
REF <- c("G","C","A","C","A","A","T","T","C","T")
Run Code Online (Sandbox Code Playgroud)
如果匹配向量"REF"中的相应元素(字母),我想在前面的向量"SNP"中放置每个元素的任何字母.预期的结果是:
SNP <- c("G/A","C/A","A/C","C/T","A/G","A/C","T/G","T/C","C/A","T/G")
Run Code Online (Sandbox Code Playgroud)
你可以试试:
mapply(function(x,y) paste(y,setdiff(x,y),sep="/"),
strsplit(SNP,"/",fixed=TRUE),REF)
#[1] "G/A" "C/A" "A/C" "C/T" "A/G" "A/C" "T/G" "T/C" "C/A" "T/G"
Run Code Online (Sandbox Code Playgroud)