2011-11-07 37 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),] 
    
相關問題