我有两个包含这些列的数据框:
1º数据框:
N | Accesion |
1 | ATT |
2 | BTT |
3 | CTT |
4 | GTT |
5 | ITT |
2ºDataframe:
| Accesion|
ATT
ATT
ATT
CTT
CTT
CTT
CTT
GTT
GTT
.
.
.
这就是我希望在2º数据库中拥有的内容:
N | Accesion
1 | ATT
1 | ATT
1 | ATT
2 | BTT
2 | BTT
2 | BTT
2 | BTT
2 | BTT
3 | CTT
.
.
我试图用双循环来做这件事: 首先,我对种质进行了分类:
df1 <- with(df1 , df1 [order(df1 $Accession) , ])
df2 <- with(df2, df2[order(df2$Accesion) , ])
然后我使用双循环来访问每个入口并进行比较,如果入口匹配,则创建一个行,其中包含该入口旁边的行号。
for (i in 1:length(df1$Accession)){
for (z in 1:length(df2$Accesion)){
if (df2$Accesion[z] == df1$Accession[i]){
df2$N[z] <- df1$N[i]
}
}}
当数据帧较小时,这项工作,但我目前正在处理长度约为60000行的数据帧。
你知道另一种有效的方法吗?
这是一个可重复的例子:
df1 <- data.frame(N=c(1,2,3,4,5), Accession=c("ATT","BTT","CTT","GTT","ITT"))
df2 <- data.frame(Accession=c("ATT","ATT","ATT","BTT","BTT","BTT","CTT","CTT","GTT")))
提前谢谢