【问题标题】:Error in code calculating aitchison distance代码计算 Aitchison 距离时出错
【发布时间】:2023-03-27 22:55:01
【问题描述】:

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

adist[i]

感谢您的帮助。 任何人都可以帮助我,提前谢谢 代码如下:

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

【问题讨论】:

  • adist 是来自包 utils (?adist) 的 R 函数名称。您的错误是由“adist[i]
  • 感谢 Otto Kassi,我消除了子集的麻烦,但现在我获得了 Adist 的唯一值,当我真正对所有对行 Adist 值感兴趣时,您有什么建议吗?感谢您的宝贵时间。

标签: r


【解决方案1】:

使用 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 )

【讨论】:

  • Otto kassi 非常感谢您,它真的很有帮助。问候
猜你喜欢
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多