如果在其他地方已经涵盖了这一点,请提前道歉,但我找不到简单的解决方案。
我的数据是这样安排的(这些代表变异的位置或 SNP ):
83353
83364
83402
83530
83539
83728
83929
83932
83950
83998
84001
84136
84148
84184
84187
84190
84205
84241
84247
84250
84253
84259
84264
现在我想计算不同位置的这些SNP的密度,即位置 83929 周围的SNP数量是多少?
我想做类似于rollapply的事情,在那里我可以计算出可以找到多少个SNP +/- 50 [即83879-83979范围](和+/- 100和+/- 500等)。
非常感谢任何帮助。
编辑:试图澄清SNP
答案 0 :(得分:0)
这是一次尝试,让z为具有SNP位置的载体。
window <- 50
lapply(z, function(x){
m <- x + window #window max
n <- x - window #window min
seq = n:m #all positions from min to max
return(length(z[z%in%seq])) #number of snp found in seq
})