A:如何找到向量中最接近的值


您可以使用以下基本语法来查找 R 中两个向量的元素之间最接近的值:

 #define cut points
cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf)

#for each value in vector1, find closest value in vector2
cut(vector1, breaks=cuts, labels=vector2)

以下示例展示了如何在实践中使用此语法。

示例:在 R 中查找向量中最接近的值

假设 R 中有以下两个向量:

 #definevectors
vector1 <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vector2 <- c(3, 5, 8, 11)

现在假设对于第一个向量中的每个值,我们想要找到第二个向量中最接近的值。

我们可以使用以下语法来做到这一点:

 #define cut points
cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf)

#for each value in vector1, find closest value in vector2
cut(vector1, breaks=cuts, labels=vector2)

 [1] 3 3 3 3 5 5 8 8 8 11

以下是如何解释结果:

  • 对于向量 1 的第一个值 (1),最接近向量 2 的值为3
  • 对于向量 1 (2) 的第二个值,最接近向量 2 的值为3
  • 对于向量 1 的第三个值 (3),最接近向量 2 的值为3
  • 对于向量 1 的第四个值 (4),最接近向量 2 的值为3
  • 对于向量 1 的第五个值 (5),最接近向量 2 的值为5

等等。

注意:该方法假设第二个向量的值严格递增。如果您还没有这样做,您可能需要先对第二个向量进行排序。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何计算R中每组的平均值
如何在 R 中对列进行平均
如何对 R 中的特定列求和

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注