gpt4 book ai didi

r - 计算R中两个向量的汉明距离?

转载 作者:行者123 更新时间:2023-12-04 16:15:43 25 4
gpt4 key购买 nike

我正在尝试计算 R 中两个向量之间的汉明距离。我目前正在尝试使用“e1071”包和 hamming.distance 函数,如下所示:

library(e1071)
H <- hamming.distance(X)

其中 X 是具有 2 行和(在我的特定数据中)667 列的 data.frame,并且每个观察值都是 0 或 1。

最初我得到了错误:
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?

经过一些研究,似乎一个修复程序可能是增加 R 中的基本选项。这是我通过 options(expressions=5000) 完成的,然后尝试用不同的值代替 5000。但这只会产生错误:
Error: C stack usage is too close to the limit

我不是一个程序员,最近这个错误的修复似乎与包 e1071 中的某些内容有关,可能没有被正确调用(或在正确的时间调用)。

关于我做错了什么的任何想法?我最终想要大量向量之间的汉明距离,这只是一个起点。如果这与内存分配有关,有关如何处理它的任何建议?

最佳答案

不知道怎么样hamming.distance在内部工作,但计算 2 个向量的距离的简单方法就是

sum(x1 != x2)

或者,在这种情况下,
sum(X[1,] != X[2,])

如果向量的总数不是太大(例如,几千个),您可以在嵌套循环中实现它:
n <- nrow(X)
m <- matrix(nrow=n, ncol=n)
for(i in seq_len(n - 1))
for(j in seq(i, n))
m[j, i] <- m[i, j] <- sum(X[i,] != X[j,])

警告:未经测试。

关于r - 计算R中两个向量的汉明距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8997198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com