R で match() 関数を使用する方法 (例付き)
R のmatch()関数は、2 つのオブジェクト間の最初の一致の位置を返します。
この関数は次の基本構文を使用します。
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 に等しい値が 2 つありますが、最初の 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: 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
結果を解釈する方法は次のとおりです。
- Vector1 内の値 1 の最初の出現は、Vector2 の位置3で発生します。
- Vector1 の値 2 が Vector2 に現れることはありません。
- Vector1 の値 3 が Vector2 に現れることはありません。
- Vector1 の値 4 が Vector2 に現れることはありません。
- Vector1 の値 5 が Vector2 に現れることはありません。
- ベクトル 1 内の値 6 の最初の出現は、ベクトル 2 の位置2で発生します。
一致しない場合に使用する別の値を指定することもできることに注意してください。
たとえば、NA の代わりに 0 の値を返すこともできます。
#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() 関数を使用する方法