R で intersect() 関数を使用する方法 (例付き)
ベース R でintersect()関数を使用すると、2 つのオブジェクトの交差部分を見つけることができます。
「交差点」は、2 つのオブジェクトに共通する要素を単純に表します。
この関数は次の基本構文を使用します。
intersect(object1, object2)
次の例は、 intersect()関数をベクトルとデータ フレームで使用する方法を示しています。
例 1: ベクトルで intersect() を使用する
次のコードは、 intersect()関数を使用して R 内の 2 つのベクトル間の交差を見つける方法を示しています。
#define two vectors x <- c(1, 4, 5, 5, 9, 12, 19) y <- c(1, 2, 5, 5, 10, 14, 19) #find intersection between two vectors intersect(x,y) [1] 1 5 19
結果から、ベクトル x と y には 3 つの値 (1、5、19 )が共通していることがわかります。
intersect()関数は文字ベクトルでも機能することに注意してください。
#define two vectors x <- c('A', 'B', 'C', 'D', 'E') y <- c('C', 'D', 'E', 'F') #find intersection between two vectors intersect(x,y) [1] “C” “D” “E”
結果から、ベクトル x と y には 3 つの文字列 ( C 、 D 、 E )が共通していることがわかります。
intersect()関数が機能するには、2 つのベクトルが同じ長さである必要はないことに注意してください。
例 2: データ フレームで intersect() を使用する
2 つのデータ フレームに共通する線を見つけるには、 dplyrパッケージのintersect()関数を使用する必要があります。
次のコードは、この関数を使用して 2 つのデータ フレームに共通する行を検索する方法を示しています。
library (dplyr) #define two data frames df1 <- data. frame (team=c('A', 'A', 'B', 'B'), dots=c(12, 20, 25, 19)) df1 team points 1 to 12 2 to 20 3 B 25 4 B 19 df2 <- data. frame (team=c('A', 'A', 'B', 'C'), dots=c(12, 22, 25, 32)) df2 team points 1 to 12 2 to 22 3 B 25 4 C 32 #find intersection between two data frames dplyr::intersect(df1, df2) team points 1 to 12 2 B 25
結果から、データ フレームには 2 つの共通の行があることがわかります。
このintersect()関数は、2 つのデータ フレーム間の各列に同じ値を持つ行のみを返すことに注意してください。
また、 length()関数をintersect()関数とともに使用すると、2 つのデータ フレームに共通する行数を単純に見つけることができることにも注意してください。
#find number of rows in common between the two data frames
length(dplyr::intersect(df1, df2))
[1] 2
結果から、両方のデータ フレームに共通の2行があることがわかります。
追加リソース
次のチュートリアルでは、R の他の一般的な関数の使用方法について説明します。
R で dim() 関数を使用する方法
Rでtransform()関数を使用する方法
R で swep() 関数を使用する方法