我有一个数据集A
paper_id author_id
1 521630
1 1611750
2 9
3 627950
4 1456512
8 15
........
和数据集B
author_id author_name author_affiliation
9 Ernest Jordan Cambridge
14 K. MORIBE NA
15 D. Jakominich NA
25 William H. Nailon
37 P. B. Littlewood Cavendish Laboratory|Cambridge University
........
我希望能够通过作者ID将这两个数据集合并,但结果应该呈现为以下形式:
paper id author_id author_name author_affiliation
2 9 Ernest Jordan Cambridge
8 15 D. Jakominich NA
我希望只按照paper_id的顺序呈现数据并在author_id上进行合并,使得所有paper_id的顺序不会被打乱。
我所做的是:
b<-merge(A,B,by="author_id")
我正在遇到问题。在这种情况下,paper_id被干扰了。
author_id paper_id author_name author_affiliation
9 1468598 Ernest Jordan cambridge
9 1682105 Ernest Jordan cambridge
然后我必须通过浏览paper_id列来对此输出进行排序。这是一种非常低效的方法。
有什么更好的方法吗?
谢谢。
b[order(b$paper_id), ]
。 - jbaumsmerge
函数中指定参数sort=FALSE
,这样合并后的数据将不会根据by
列进行排序。但是,行将以“未指定的顺序”排列。有关更多上下文信息,请参阅merge
的帮助页面中的Value
部分。 - Brian Diggs