如何返回原始数据的合格行?

时间:2011-11-07 13:00:16

标签: r matrix row return-value

我的代码如下所示:

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 个答案:

答案 0 :(得分:1)

请参阅?which.max

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

但是,请考虑两种代码的简化:

  1. 使用apply而不是root
  2. 仅针对整个rdist

    运行G
    dmax <- G[apply(rdist(G,G),1,which.max),]
    dmin <- G[apply(rdist(G,G),1,which.min),]