表1(900行)标识每个群集的监管机构:
reg cluster weight
a 0 59
b 0 52
e 1 46
f 1 46
g 2 66
h 2 18
表2(90行)表示属于每个群集的基因:
gene cluster
1 0
2 1
3 0
4 2
5 0
6 0
7 1
我想从这两个中创建一个表3,如下所示:
reg gene weight
a 1 59
a 3 59
a 5 59
a 6 59
b 1 52
b 3 52
b 5 52
b 6 52
e 2 46
e 7 46
…
即,我想列出regs和基因之间的每一次互动。我怎么能在R?中做到这一点?
答案 0 :(得分:1)
merge
适用于此类内容:
merge(reg, gene)
可生产
cluster reg weight gene
1 0 a 59 1
2 0 a 59 3
3 0 a 59 5
4 0 a 59 6
5 0 b 52 1
6 0 b 52 3
7 0 b 52 5
8 0 b 52 6
9 1 e 46 2
10 1 e 46 7
11 1 f 46 2
12 1 f 46 7
13 2 g 66 4
14 2 h 18 4
合并会自动加入公共列名称(在这种情况下为cluster
),但您可以根据需要进行更改。如果您不想使用cluster
,也可以轻松删除merge(reg, gene)[-1]
列。
data.table
是一个更快的选择:
library(data.table)
data.table(reg, key="cluster")[
data.table(gene, key="cluster"),
allow.cartesian=TRUE
]
通过指定要加入的键列来加入此处。