如何将数据框的值匹配到另一个数据框
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]
我下载了 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]