如何将数据框的值匹配到另一个数据框

How to match values from a data frame to another

我下载了 876 个 276 个核苷酸长度的 DNA 序列,并用这些信息制作了 df。 TOTAL <- read.csv("TOTAL.csv") TOTAL Ind Seq Tipo 1 AACTTTCAACAACGGATCTCTTGGTTC... _NA_ 2 AACTTTTAAAAACGGGTTCTTTGGTTC... _NA_ 3 AACTTTCAACAACGGATCTCTTGGTTC... _NA_ 4 AACTTTCAACAACGGATCTCTTGGTTC... _NA_ 52 AACTTTCAACAACGGATCTCTTGGGTC... _NA_ 821 AACTTTCAACAACGGATTTTTTGGTTC... _NA_ 876 AACTTTCAACAACGGATCTCTTGGTTN... _NA_

然后我提取了uniques序列,发现有53种不同类型的序列。最后,我为每个唯一序列分配了一个从 "A""BA" 的字符值。 UNIQUE <- read.csv("UNIQUE.csv") UNIQUE Ind Seq Tipo 1 AACTTTCAACAACGGATCTCTTGGTTC... A 2 AACTTTTAAAAACGGGTTCTTTGGTTC... B 3 AACTTTCAACAACGGATCTCTTGGTTC... C 10 AACTTTCAACAACGGATCTCTTGGGTC... J 30 AACTTTCAACAACGGATTTTTTGGTTC... AD 53 AACTTTCAACAACGGATCTCTTGGTTN... BA

我想要的是,对于 TOTAL$Seq 中的每个值,在 UNIQUE$Seq 中找到一个匹配项。然后在 UNIQUE$Haplo 中分配给 TOTAL$Haplo 一个与 UNIQUE$Seq 匹配的值。我怎样才能做到这一点? TOTAL Ind Seq Tipo 1 AACTTTCAACAACGGATCTCTTGGTTC... A 2 AACTTTTAAAAACGGGTTCTTTGGTTC... B 3 AACTTTCAACAACGGATCTCTTGGTTC... C 4 AACTTTCAACAACGGATCTCTTGGTTC... C 52 AACTTTCAACAACGGATCTCTTGGGTC... J 821 AACTTTCAACAACGGATTTTTTGGTTC... AD 876 AACTTTCAACAACGGATCTCTTGGTTN... BA

使用dplyr

TOTAL$Seq<-as.character(TOTAL$Seq)
TOTAL<-TOTAL[,1:2]
UNIQUE$Seq<-as.character(UNIQUE$Seq)
left_join(TOTAL, UNIQUE, by="Seq")

如果您得到一个名为 Ind.y 的列,请将最后一行的 UNIQUE 替换为 UNIQUE[,2:3]