我有一个csv文件,其基因型计数在三列中。我使用read.table()导入csv,并使用另一个变量专门从这些列中提取数据:
数据示例:
SNP, Allele, CC, CT, TT
1, .329, 12, 3, 4
2, .231, 3, 2, 6
3, .214, 5, 4, 5
代码:
library(HardyWeinberg)
x = read.table("SNPs.csv", header=T, sep = ",")
y = c(x$CC, x$CT, x$TT)
HW.test = HWExact(y, verbose=TRUE)
问题是HW.test正在读取列而不是行,所以使用上面的数据,它会计算12,3和5的HWE,而不是12,3,4。
如何确保水平读取?
答案 0 :(得分:4)
看?HWExact
,它似乎只是设计了一个长度为3的向量(即,计算一组HW基因型。
?HWExactMat
看起来像是为你想做的事而设计的。在HWExactMat
中,第一个参数是一个包含3列的矩阵(显示的示例看起来就像您要尝试的那样)。所以试试:
HWExactMat(as.matrix(x[,3:5]), verbose=T)