R语言 如何计算汉明距离
在这篇文章中,我们将研究在R编程语言中计算有害距离的各种方法。
两个数据集合之间的汉明距离是对应元素不同的位置数。换句话说,我们可以说,要使两个数据集合相同,需要的最小变化数。R中的汉明距离是针对向量计算的。
数字向量: 数字向量是一个由整数、十进制、双数等数值组成的向量。考虑一个例子,我们给了两个数字向量,vect1 = c(1, 3, 4, 5)和vect2 = c(1, 3, 9, 5),因为只有对应的第三个元素不同,所以Hamming距离等于1。
在R中,我们可以通过以下方法计算两个数字向量之间的汉明距离。
方法1:使用内置的sum()函数 来计算数字向量的汉明距离
在这个方法中,用户需要调用一个内置的sum函数,利用这个函数我们可以计算数字向量之间的汉明距离。在内部,这个函数计算出vect1的元素与vect2的元素不相等的对应位置的数量。
语法 。
sum(vect1 != vect2)
例子 。
让我们考虑两个数字向量,vect1 = c(10, 2, 3, 7, 8, 12) 和 vect2 = c(10, 2, 1, 2, 0, 24)。显然,相应的第三、第四、第五和第六元素是不同的。因此,汉明距离等于4。
输出 。
方法2:使用自定义()函数来计算数字向量的汉明距离
在这种方法中,用户可以创建自己的自定义函数,计算两个数字向量之间的汉明距离。按照下面的步骤,使用自定义函数计算汉明距离。
- 定义一个 computerHammingDistance 函数。它接受两个向量作为参数,vect1和vect2。
- 初始化一个变量答案为0,它计算出最终的答案。
- 现在使用for-in循环遍历vect1或vect2的长度。如果vect1[index]等于vect2[index],那么答案变量增量为1。
- 迭代结束后,从函数中返回答案变量。
- 初始化一个变量HammingDistance,并将函数返回的值赋给它。
- 打印HammingDistance变量所代表的值。
例子 。
让我们考虑两个数字向量,vect1 = c(11, 7, 3, 2, 8, 12) 和 vect2 = c(8, 7, 3, 2, 8, 24)。很明显,相应的第一个和最后一个元素是不同的。因此,汉明距离等于2。
输出 。
方法3:使用内置的sum()函数来计算二进制向量的汉明距离
在这种方法中,用户需要调用一个内置的sum函数,利用它我们可以计算两个二进制向量之间的汉明距离。
二进制向量。二进制向量是一个由只有两个逻辑值的数值组成的向量,即0或1。考虑一个例子,我们给了两个二进制向量,vect1 = c(1, 0, 1, 0),vect2 = c(1, 1, 1, 1)。由于只有相应的第二和第四元素不同,所以汉明距离等于2。
语法 。
sum(vect1 != vect2)
在内部,这个函数计算出vect1的元素不等于vect2的元素的对应位置的数量。
例子 。
让我们考虑两个二进制向量,vect1 = c(0, 1, 0, 1, 0, 1)和vect2 = c(1, 1, 0, 0, 1, 1)。很明显,对应的第一、第四和第五元素是不同的。因此,汉明距离等于3。
输出 。
方法4:使用自定义()函数来计算二进制矢量的汉明距离
在这种方法中,用户必须遵循与上述方法2相同的方法,只是将R编程语言中的向量类型改为二进制。
例子 。
让我们考虑两个二进制向量,vect1 = c(0, 1, 0, 1, 1, 1) 和 vect2 = c(1, 1, 0, 0, 1, 1)。很明显,对应的第一和第四元素是不同的。因此,汉明距离等于2。
输出 。
方法5:使用内置的sum()函数来计算字符串向量的汉明距离
在这种方法下,用户必须应用与上述方法-1和方法-3相同的方法,将向量类型改为字符串。
字符串向量: 字符串向量是一个由若干字符串组成的向量。考虑一个例子,我们给了两个数字向量,vect1 = c(“GeeksforGeeks”, “R”, “C++”, “Java”)和vect2 = c(“Geeks”, “R”, “C”, “Java”),因为只有对应的第一和第三元素不同,因此汉明距离等于二。
语法 。
例子 。
让我们考虑两个字符串向量,vect1 = c(“GeeksforGeeks”, “Java”, “Python”, “C++”, “R”, “Swift”, “PHP”) 和 vect2 = c(“Geeks”, “Java”, “C++”, “R”, “Python”, “Swift”, “C#”)。很明显,对应的第一、第三、第四、第五和第七元素是不同的。因此,汉明距离等于5。
输出 。
方法6:使用自定义()函数来计算字符串向量的汉明距离
在这个方法中,用户必须遵循上述方法2和方法4中的相同方法,只是将R编程语言中的向量类型改为字符串。
例子 。
让我们考虑两个字符串向量,vect1 = c(“GeeksforGeeks”, “Java”, “C#”, “C++”, “R”, “PHP”, “Swift”)和vect2 = c(“GeeksforGeeks”, “Python”, “C”, “R”, “Python”, “Swift” “C#”)。很明显,对应的第二、第三、第四、第五、第六和第七元素是不同的。因此,汉明距离等于6。
输出 。