【发布时间】:2020-05-25 00:41:20
【问题描述】:
我想合并两个数据表,同时保持数据表的原始顺序。我还想有一个最后一栏来说明这两个 id 是否相互匹配。所有这些同时保持 data.table 的原始顺序。
测试 data.table 显示我遇到的问题,当您合并两个 data.tables 时,行的顺序有时会不同。
如果(g1.label==g2.label) 那么(match=="T")
library(data.table)
set.seed(100)
dt <- data.table(g1=c("A", "B", "C", "D", "E", "F", "L", "O", "P", "J"),
g2=c("G", "D", "C", "H", "K", "J", "L", "U", "I", "R"),
value= rnorm(10))
ids <- data.table(labels=c("A", "B", "C", "D", "E", "F", "L", "O",
"P", "J", "G", "H", "K", "U", "I", "R"),
ids=c(1:16))
test <- merge(dt, ids, by.x="g1", by.y="labels")
test2 <- merge(dt, ids, by.x="g2", by.y="labels")
# Desired output with original order
g1 g2 value g1.label g2.label match
A G -0.50219235 1 11 F
B D 0.13153117 2 4 F
C C -0.07891709 3 3 T
D H 0.88678481 4 12 F
E K 0.86014084 5 13 F
F J 1.09086728 6 10 F
L L 1.42053190 7 7 T
O U 0.93415334 8 14 F
P I 0.22375495 9 15 F
J R -0.35749574 10 16 F
【问题讨论】:
标签: r merge data.table