如何在 r 中使用 match() 函数(附示例)


R 中的match()函数返回两个对象之间第一个匹配的位置。

该函数使用以下基本语法:

 match(object1, object2)

以下示例展示了如何在不同场景下使用该功能。

示例 1:匹配向量中的值

以下代码演示如何使用match()函数查找向量中特定值的第一次出现:

 #define value to look for in vector
value <- 10

#define vector of values
vector1 <- c(8, 9, 1, 10, 13, 15)

#find first occurrence of 10
match(value, vector1)

[1] 4

这告诉我们值 10 首先出现在向量的第 4 个位置。

注意,如果多个值匹配,则仅返回第一个匹配的位置。

例如,以下向量有两个等于 10 的值,但仅返回前 10 个的位置:

 #define value to look for in vector
value <- 10

#define vector of values with multiple '10' values
vector1 <- c(8, 9, 1, 10, 10, 10)

#find first occurrence of 10
match(value, vector1)

[1] 4

值 10 出现在位置 4、5 和 6 处,但仅返回位置4

示例2:匹配两个向量中的值

以下代码展示了如何使用match()函数查找一个向量中的值在另一个向量中第一次出现的位置:

 #define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)

#find first occurrence of values in vector1 within vector2
match(vector1, vector2)

[1] 3 NA NA NA NA 2

以下是如何解释结果:

  • 矢量 1 中值 1 的第一次出现出现在矢量 2 的位置3 处
  • 矢量 1 中的值 2 永远不会出现在矢量 2 中。
  • 矢量 1 中的值 3 永远不会出现在矢量 2 中。
  • 矢量 1 中的值 4 永远不会出现在矢量 2 中。
  • 矢量 1 中的值 5 永远不会出现在矢量 2 中。
  • 值 6 在向量 1 中第一次出现在向量 2 的位置2处。

请注意,我们还可以指定在不匹配的情况下使用的不同值。

例如,我们可以返回值 0 而不是 NA:

 #define vectors of values
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(8, 6, 1, 10, 10, 15)

#find first occurrence of values in vector1 within vector2
match(vector1, vector2, nomatch= 0 )

[1] 3 0 0 0 0 2

其他资源

以下教程解释了如何使用 R 中的其他常用函数:

如何在R中使用summary()函数
如何在R中使用replicate()函数
如何在 R 中使用 gsub() 函数
如何在 R 中使用 par() 函数

添加评论

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