2011-11-07 45 views
0

我的代码如下所示:如何返回到原始数据的合格行?

set.seed(123) 
nsim<-5 
p<-2 

G <- matrix(runif(p*nsim),nsim,p) 

dmax<- matrix(data=NA,nrow=nsim,ncol=p) 
dmin<- matrix(data=NA,nrow=nsim,ncol=p) 

for(i in 1:nsim) { 
    dmax[i]<- max(rdist(G[i,,drop=FALSE],G)) 
    dmin[i]<- min(rdist(G[i,,drop=FALSE],G[-i,])) 
} 

我充满DMAX和DMIN用它计算出的距离,但我真正想要的是与G.行,以填补他们如何能做到这一点?

回答

1

?which.max

dmax[i,] <- G[which.max(rdist(G[i,,drop=FALSE],G)),] 

但是,考虑代码两个简化:

  1. 使用apply,而不是根
  2. 运行rdist只是整个G

    dmax <- G[apply(rdist(G,G),1,which.max),] 
    dmin <- G[apply(rdist(G,G),1,which.min),] 
    
相关问题