在做循环数组的时候不知道这个循环怎么写了,因为数据太大了,希望能求救。
k=seq(10100,249250621,10)
文件 'a' 为:
chr1 100000851 + 2 100000925
chr1 100001273 + 3 100001347
类似这样的有30万行的数据
现在我想做的是找出每一个a[,5]所在的这样的区间(k-75,k+75)
合并成一个新的数据框使得a[,6]=k
我自己写了2个小的函数,但是都错了,我不知道怎么回事:
k=seq(10100,249250621,10)
文件 'a' 为:
chr1 100000851 + 2 100000925
chr1 100001273 + 3 100001347
类似这样的有30万行的数据
现在我想做的是找出每一个a[,5]所在的这样的区间(k-75,k+75)
合并成一个新的数据框使得a[,6]=k
我自己写了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))
在这个小函数中,如果k只有几个值我可以算出结果来,但是对于这么大的k,总是显示错误。
2.for(i in 1:length(k)){
if(length(N1<-which(a[,5]-(k[i]-75)>0&a[,5]-(k[i]+75)<0))>0){
for(j in N1){
x1=cbind(k[i],a[j,])
x2=rbind(x2,x1)
}
}
}
谁能有比较简洁的办法告诉我为什么求不出来,错在哪里?有没有更简单的办法? :-( 不胜感激