【发布时间】:2018-10-05 18:57:33
【问题描述】:
我的目标是合并两个基于列genus 的大型数据框,但具有不重复行的特殊条件(第一次尝试未解决);并且还保留来自两个数据帧的更多信息(在第二次尝试中未解决),请查看所需的输出:
chromdata <- read.table(text="
genus sp
1 Acosta Acosta_1
2 Aguilera Aguilera_1
3 Acosta Acosta_2
4 Aguilera Aguilera_2
5 other 1 # EDIT: new rows
6 other 2",header=TRUE,fill=TRUE,stringsAsFactors=FALSE)
treedata <- read.table(text="
genus sp
1 Acosta Acosta_3
2 Aguilera Aguilera_3
3 Acosta Acosta_4
4 Aguilera Aguilera_4
5 other 3",header=TRUE,fill=TRUE,stringsAsFactors=FALSE)
#First try
merge(chromdata,treedata, by="genus", all=F)
#Second try
chromdata$sp2<-treedata$sp[match(chromdata$genus, treedata$genus)]
chromdata
genus sp sp2
1 Acosta Acosta_1 Acosta_3
2 Aguilera Aguilera_1 Aguilera_3
3 Acosta Acosta_2 Acosta_3 #Acosta_4 missing
4 Aguilera Aguilera_2 Aguilera_3 # Aguilera_4 missing
5 other 1 3
6 other 2 3
期望的输出:
genus sp sp2
1 Acosta Acosta_1 Acosta_3
2 Aguilera Aguilera_1 Aguilera_3
3 Acosta Acosta_2 Acosta_4
4 Aguilera Aguilera_2 Aguilera_4
5 other 1 3 # EDIT: new rows
6 other 2 3
【问题讨论】: