【发布时间】:2011-01-21 21:55:14
【问题描述】:
在R中的一个非常大的数据集中多次将2列组合成1列
如果我能让它们工作并且真正的数据集约为 1500 X 45000,那么我正在研究的笨拙的解决方案不会很快,因此它们需要快速。尽管有一些 2) 和 3) 的代码,但我现在对 1) 肯定不知所措。
这是一个数据结构的玩具示例:
pop = data.frame(status = rbinom(n, 1, .42), sex = rbinom(n, 1, .5),
age = round(rnorm(n, mean=40, 10)), disType = rbinom(n, 1, .2),
rs123=c(1,3,1,3,3,1,1,1,3,1), rs123.1=rep(1, n), rs157=c(2,4,2,2,2,4,4,4,2,2),
rs157.1=c(4,4,4,2,4,4,4,4,2,2), rs132=c(4,4,4,4,4,4,4,4,2,2),
rs132.1=c(4,4,4,4,4,4,4,4,4,4))
因此,有几列基本人口统计信息,然后其余列是双等位基因 SNP 信息。例如:rs123是rs123的等位基因1,rs123.1是rs123的第二等位基因。
1)我需要将当前2列中的所有双等位基因SNP数据合并为1列,例如:rs123和rs123.1合并为一列(但在数据集中):
11
31
11
31
31
11
11
11
31
11
2) 我需要确定最不频繁的 SNP 值(在上面的例子中是 31)。
3) 我需要用 1 替换最不频繁的 SNP 值,用 0 替换其他值。
【问题讨论】: