【发布时间】:2018-05-20 17:03:07
【问题描述】:
我有一些配子数据,格式如下:
Ind Letter Place Position
1 A 19 23
2 B 19 23
3 B 19 23
4 B 19 23
1 B 19 34
2 A 19 34
3 B 19 34
4 B 19 34
1 C 19 52
2 T 19 52
3 C 19 52
4 T 19 52
1 T 33 15
2 T 33 15
3 T 33 15
4 C 33 15
1 C 33 26
2 T 33 26
3 T 33 26
4 C 33 26
数据输入:
structure(list(Ind = c(1L,2L,3L,4L,1L,2L,3L,4L,1L,2L,3L,4L,1L,2L,3L,4L,1L,2L,3L,4L),
Letter = structure(c(1L,2L,2L,2L,2L,1L,2L,2L,3L,4L,3L,4L,4L,4L,4L,3L,3L,4L,4L,3L),
.Label = c("A","B","C","T"), class="factor"),
Place = c(19L,19L,19L,19L,19L,19L,19L,19L,19L,19L,19L,19L,33L,33L,33L,33L,33L,33L,33L,33L),
Position = c(23L,23L,23L,23L,34L,34L,34L,34L,52L,52L,52L,52L,15L,15L,15L,15L,26L,26L,26L,26L)),
.Names = c("Ind","Letter","Place","Position"),
class="data.frame", row.names = c(NA,-20L))
我需要对它们进行配对和组合,因此我可以参考一对中的位置来获得所有可能的唯一组合。我有另一个数据文件,其中包含有关配对的信息,并且它们与 Place 配对。所以在这个文件中我可能会看到,Place 19+Place 33 是一对,我想要以下结果:
Ind Letter Place Position Ind Letter Place Position
1 A 19 23 1 T 33 15
2 B 19 23 2 T 33 15
3 B 19 23 3 T 33 15
4 B 19 23 4 C 33 15
1 A 19 23 1 C 33 26
2 B 19 23 2 T 33 26
3 B 19 23 3 T 33 26
4 B 19 23 4 C 33 26
1 B 19 34 1 T 33 15
2 A 19 34 2 T 33 15
3 B 19 34 3 T 33 15
4 B 19 34 4 C 33 15
1 B 19 34 1 C 33 26
2 A 19 34 2 T 33 26
3 B 19 34 3 T 33 26
4 B 19 34 4 C 33 26
1 C 19 52 1 T 33 15
2 T 19 52 2 T 33 15
3 C 19 52 3 T 33 15
4 T 19 52 4 C 33 15
1 C 19 52 1 C 33 26
2 T 19 52 2 T 33 26
3 C 19 52 3 T 33 26
4 T 19 52 4 C 33 26
在这种情况下,unique 表示 A1:A2 等于 A2:A1。 我想这样做的原因是因为我想对配对进行四配子测试,看看是否存在所有可能的字母组合。所以例如对于上面最后一个组合对,我们有字母对 CC、TT、CT、TC,所以这个组合对将通过 FGT。
我尝试与expand.grid 进行组合,因为这似乎与我想要的非常接近。但是,当我需要 data$Position 的所有组合时,我会丢失 Ind、Letter 和 Place 的信息。输出还包括非唯一对。
谁能给我指出一个更接近我想要的工具?或者给我一些关于如何修改expand.grid 的指南,以获得我需要的东西。
如果您知道一个工具,它实际上可以进行四配子测试或类似的东西,那么我当然也会感兴趣。
【问题讨论】:
-
能否请您输入您拥有的数据框。我建议您为配对的地点创建一个密钥,然后进行交叉连接。
-
我不确定如何输入数据。我假设你想要这个,所以你可以导入数据,对吗?我的数据为 .csv,但我不知道如何将其附加到问题中。
-
抱歉,我不清楚:我可以执行 dput 功能,但我不确定如何处理生成的文件。我只是将其粘贴到我的问题中还是需要以某种方式附加为文件?
-
@Hjalte 把它粘贴进去
-
这是Four-Gamete-Test in R 的副本吗?如果没有,你能告诉我们它有什么不同吗?
标签: r combinations bioinformatics