k=seq(10100,249250621,10)
a =data.frame(nrow=300000,ncol=5) #like this format:
chr1 100000851 + 2 100000925
chr1 100001273 + 3 100001347
..............................
1.Now我想计算:[R计算大数据流通
为每a[i,5]
,搜索k[j]
可能在区间使a[i,5]
(k[j]-75,k[j]+75)
然后合并一个new data.frame(),make a[i,6]=k[j]
2.我写了两个代码,但我不知道我在哪里错了:
1)
b=function(x){
x1=a[which(a[,5]-(x-75)>0&a[,5]-(x+75)<0,]
x2=cbind(x1,x)
}
c=apply(k,1,function(x)a(x))
2)
for(i in 1:length(k)){
if(length(N1<-which(a[,5]-(k-75)>0&a[,5]-(k+75)<0))>0){
for(j in N1){
x1=cbind(k,a[j,])
x2=rbind(x2,x1)
}
}
}
但他们都错了。
任何人给予建议可能是非常感激!
如果两个没有“K”的比赛条件会发生什么或?你能举一个例子“a [,5]”和“k”来考虑任何约束吗?作为开始,似乎你可以尝试像sapply(a [,5],function(x)k [x> =(k-75)&x <=(k + 75)])? – 2014-12-04 15:55:43
谢谢。 @ alexis_laz#例如,应该有'k'可以匹配条件,如果有多于两个k匹配,则将每个k组合为构造新的data.frame()。 'kr1 100000851 + 2 100000925 100000925(k)''chr1 100000851 + 2 100000925 100000935(k)''chr1 100000851 + 2 100000925 100000945(k)''chr1 100000851 + 2 100000925 100000955(k)' – 2014-12-05 00:53:04
您能否给我一些建议吗?这些让我很困惑。 – 2014-12-05 05:08:30