<br />
hihood<-function(data){<br />
<br />
<br />
for(i in 1:nrow(data)){<br />
<br />
nei<-rep(0,ncol(data))<br />
dim(nei)<-c(1,ncol(data))<br />
colnames(nei)<-colnames(data)<br />
co=0<br />
<br />
for(j in 1:nrow(data)){<br />
if(co>279) <br />
<br />
break<br />
data$gx[i]-data$gx[j]->dx<br />
data$gy[i]-data$gy[j]->dy<br />
<br />
if(sqrt(dx^2+dy^2)>0 & sqrt(dx^2+dy^2)<5)<br />
{ co=co+1<br />
nei<-rbind(nei,data[j,])<br />
}<br />
}<br />
<br />
neighbor[1,]=NULL<br />
write.table(nei,file=paste("neighbor",i,".txt",sep=""),quote=FALSE,row.names=FALSE,sep="\t")<br />
<br />
}<br />
<br />
}<br />
要实现一个功能:将数据集中,符合条件的行挑出来,然后放到另一个数据框中
因为是整行转过去的,所以另外一个数据框的列与原来的列相同
发现不同建立一个空的,只有框架没有内容的数据框,所以只能先给新的数据框一行数据,到最后将它删掉
要处理的数据有4000行左右,但是算过对于每一个case的数据,最多只有279行符合条件
这里是两层的循环,
要做的运算相当于第二层循环中运算量的4000*4000倍,有没有办法将运算量降下来,?