我的数据框df1
如下所示:
id name type
46 hsa:4052 gene
50 hsa:7057 gene
52 hsa:8454 gene
然后我有第二个数据框df2
,如下所示:
entry1 entry2 type name value
46 44 PPrel activation -->
52 50 PPrel activation -->
29 27 PPrel activation -->
现在,两个数据框中的公共列是来自df1
的{{1}}和entry1
以及来自entry2
的{{1}}的ID。我希望我的结果看起来像这样:
df2
所以我想要的是将entry1 entry2 type name value
hsa:4052 44 PPrel activation -->
hsa:8454 hsa:7057 PPrel activation -->
29 27 PPrel activation -->
中的entry1
和entry2
id
替换为来自df2
的相应ID的名称。我尝试合并,但显然合并在这里没有帮助。有什么帮助吗?
答案 0 :(得分:2)
试试这个:
df2[,1:2]<-lapply(df2[,1:2],
function(x) ifelse(x %in% df1$id,df1$name[match(x,df1$id)],x))
# entry1 entry2 type name value
#1 hsa:4052 44 PPrel activation -->
#2 hsa:8454 hsa:7057 PPrel activation -->
#3 29 27 PPrel activation -->