【发布时间】:2019-08-28 11:27:31
【问题描述】:
在 R 上编写脚本来处理数据集以获取另一个程序的输入文件时,我有点吃力。
我有一个如下所示的数据集:
df1 <- read.table(text = "
chr pos ind0 ind1 ind2 ind3 ind4 ind5 ind6 ind7 ind8 ind9 ind10
MRVK01001299.1 972 C C T N C C T N N C C
MRVK01001299.1 973 G G G N G G G N N G G
MRVK01001299.1 997 C T T T T T T T T T T
MRVK01001299.1 999 A T T N T T T T T T T
MRVK01001299.1 1018 A C T N T C C T T T T
MRVK01001299.1 1086 A T T T T T T T T T T
MRVK01001299.1 2125 C C T N C C T N N C C
MRVK01001299.1 2456 G G G N G G G N N G G
", header = TRUE, stringsAsFactors = FALSE)
我想确定在 ind0 中唯一找到字母的位置 (pos)。
“N”不会被算作不同的字母。例如,我们将为位置 997、999 和 1086 设置一个唯一值。
然后,我想数一下 ind0 有多少次在 position (pos) 列中有 1000 个系列的私人信件。 所以这将是:
0 2
1000 1
2000 0
etc
因为我们有两个位置,ind0 的唯一值介于 0 和 1000 之间,1 介于 1000 和 2000 之间,0 介于 2000 和 3000 之间。最远的值将超过 20,000,000。
我正在努力寻找在 R 上对此进行编码的解决方案。有人可以帮忙吗?
【问题讨论】:
-
如果我们对数据有更多了解,可能会更容易回答,生物学问题是什么,预期的输出含义是什么?添加了一些标签,希望有“海豚”数据的用户有所了解。
-
在您包含的表格(或表格的子集)上使用
dput(),并将结果发布在此处。这允许我们复制您的表格。 -
@hedgedandlevered 使数据可重现。
-
非常感谢您的帮助。数据是在每个个体中发现的支架、位置和等位基因(A、T、C、G、N)。我正在将一个特定的个体 (ind01) 与另一个个体进行比较,看看他是否有私人等位基因簇。如果是这样,这可能表明他的祖先来自我们没有抽样的人群(幽灵人群)。个体是海豚,chrm 和 pos 列表示宽吻海豚参考基因组中的位置。
-
这是我数据集前 8 行(共 43,500 行)的 dput() 结果,用于前 3 个人(有 22 个人):
标签: r bioinformatics genetics