计算aitchison距离的代码出错

时间:2017-12-12 16:47:24

标签: r

我想使用Adist函数计算矩阵的所有行对之间的aitchison距离。我正在使用iris数据进行测试,我使用for脚本进行了测试,但是当我运行代码时,我收到了此消息:

  

adist [i]< - aDist(X [i - 1,],X [i,])出错:类型对象   '闭合'不是子集表格

我感谢任何帮助。 任何人都可以帮助我,提前谢谢 这是代码:

X <- iris [ ,1:3]
for(i in 1: nrow (X)) {
    adist[i] <- aDist( X[i-1, ], X[i, ])
}

1 个答案:

答案 0 :(得分:0)

使用for循环:

library('robCompositions') 
X <- iris [ ,1:3]

a <- vector('numeric', length=nrow(X) )
for(i in 1: nrow (X)) {
  a[i] <- aDist( X[i-1, ], X[i, ])
}

更像R的方法

library('robCompositions') 
X <- iris [ ,1:3]

aDistFun <- function(x, r){
  return(aDist( x[r-1, ], x[r, ])) 
}

a <- sapply(seq(1, nrow(X)), FUN=aDistFun, x=X )