Join 基于字段中具有冗余/缺少值的字段联接文件
我有两个以制表符分隔的文本文件,我希望基于某个字段(例如field1)进行连接。在其中一个文件中,该字段存在冗余,例如:Join 基于字段中具有冗余/缺少值的字段联接文件,join,field,Join,Field,我有两个以制表符分隔的文本文件,我希望基于某个字段(例如field1)进行连接。在其中一个文件中,该字段存在冗余,例如: field1 field2 field3 A gene1 0.01 A gene2 0.001 A gene3 0.02 B gene4 0.01 B gene5 0.03 C gene6 0.004 另一方面,没有冗余: field1 name pathway A A_name A_pathway B
field1 field2 field3
A gene1 0.01
A gene2 0.001
A gene3 0.02
B gene4 0.01
B gene5 0.03
C gene6 0.004
另一方面,没有冗余:
field1 name pathway
A A_name A_pathway
B B_name B_pathway
C C_name C_pathway
D D_name D_pathway
E E_name E pathway
第二个文件还包含要联接的字段中第一个文件中不存在的值。是否可以使用join命令连接这些文件,从而生成以下文件:
field1 field2 field3 name pathway
A gene1 0.01 A_name A_pathway
A gene2 0.001 A_name A_pathway
A gene3 0.02 A_name A_pathway
B gene4 0.01 B_name B_pathway
B gene5 0.03 B_name B_pathway
C gene6 0.004 C_name C_pathway
我试着查看一下join的手册页并进行了一些尝试,但似乎无法使其正常工作。由于您对SQLite有一定的了解,因此使用此SQL工具来处理您的问题可能是最有意义的。首先,使用以下命令将两个CSV文件导入SQLite:
sqlite> create table table1 (field1 text, field2 text, field3 real);
sqlite> .separator "\t"
sqlite> .import table1.csv table1
并对第二个表执行相同的操作:
sqlite> create table table2 (field1 text, name text, pathway text);
sqlite> .separator "\t"
sqlite> .import table2.csv table2
现在数据已在SQLite中,您可以执行以下简单连接以获得所需的结果集:
SELECT t1.field1,
t1.field2,
t1.field3,
t2.name,
t2.pathway
FROM table1 t1
INNER JOIN table2 t2
ON t1.field1 = t2.field1
您有权访问SQL数据库吗?R怎么样?使用这两种工具中的任何一种都很容易处理。我对SQLite有一些经验。我可以用它来连接表吗?