从R中的2个表中绘制数据

时间:2015-10-16 15:43:19

标签: r bash

我有表1(子集):

A10L    2048.33333333334    537.666666666665    17  7   0.00035473  0.00056334
A11R    706 200 6   5   0.00037119  0.00110825
A12L    209.666666666667    57.3333333333332    3   1   0.00067166  0.00104651
A13L    14  3.99999999999999    0   0   0.00000000  0.00000000
A14L    154.333333333333    40.6666666666666    0   0   0.00000000  0.00000000
A15L    205 55.9999999999999    2   2   0.00039427  0.00144330
A16L    724.333333333333    184.666666666667    8   4   0.00044806  0.00087536
A17L    477 126 7   1   0.00067518  0.00032073
A18R    1000.66666666667    277.333333333333    10  5   0.00042343  0.00079922
A19L    167.333333333333    45.6666666666666    4   1   0.00119768  0.00088494

表2(子集):

A10L    119355
A11R    121185
A12L    121954
A13L    122373
A14L    122723
A15L    123169
A16L    123863
A17L    124740
A18R    125801
A19L    126639

我想知道如何在x轴上绘制表2的第2列,在y轴上绘制表1的第6列?基本上表2是基因的中点坐标,表1是基因的一些多样性值。

在我的实际例子中,表1和表2的顺序不同,即两个表中基因的顺序不同,但基因相同,表1中的所有基因都列于表2中,但反之亦然,表2可能有2-3个未被分析的额外基因。

我想我可以用bash sort -k1,1选项对它们进行排序,然后将它们合并,但是这需要手动检查缺失的基因......还有什么我可以做的吗?

谢谢, 阿德里安

1 个答案:

答案 0 :(得分:0)

谢谢大家的回答。这是我发现完美的工作(尽管编码可能不是最有效的):

coord <- read.csv("coordinates.csv", header = F)
pi <- read.table("pi_output")
coord2 <- data.frame(gene = coord[,1], crd = coord[,2])
pi2 <- data.frame(gene = pi[,1], nsyn = pi[,6], syn = pi[,7])
pi3 <- merge(coord2, pi2, by.x = "gene", by.y = "gene", all = TRUE)

final_merged <- pi3[order(pi3$crd),]

其中coord相当于table2,pi将具有上面示例中发布的table1的值。