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中出现过。
- 向量1中的值6第一次出现在向量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()函数