如何在 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() 函数