我想使用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, ])
}
答案 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 )