R で setdiff 関数を使用する方法 (例付き)


R のsetdiff()関数を使用すると、2 つのセット間の違いを見つけることができます。この関数は次の構文を使用します。

setdiff(x,y)

金:

  • x、y:一連の要素を含むベクトルまたはデータ フレーム

このチュートリアルでは、この関数の実際の使用例をいくつか紹介します。

例 1: 数値ベクトルを使用した Setdiff

次のコードは、 setdiff()を使用して、ベクトルbに現れないベクトルaのすべての値を識別する方法を示しています。

 #definevectors
a <- c(1, 3, 4, 5, 9, 10)
b <- c(1, 2, 3, 4, 5, 6)

#find all values in a that do not occur in b
setdiff (a,b)

[1] 9 10

ベクトルaに現れ、ベクトルbに現れない値が910の 2 つあります。

setdiff()関数でベクトルの順序を逆にすると、代わりに、ベクトルaに現れないベクトルbのすべての値を識別できます。

 #find all values in b that do not occur in a
setdiff (b,a)

[1] 2 6

ベクトルbには出現するが、ベクトルaには出現しない値が2つと6あります。

例 2: 文字ベクトルを使用した Setdiff

次のコードは、 setdiff()を使用して、 char2ベクトルに現れないchar1ベクトル内のすべての値を識別する方法を示しています。

 #define character vectors
char1 <- c('A', 'B', 'C', 'D', 'E')
char2 <- c('A', 'B', 'E', 'F', 'G')

#find all values in char1 that do not occur in char2
setdiff (char1, char2)

[1] “C” “D”

例 3: データ フレームを使用した Setdiff

次のコードは、 setdiff()を使用して、2 番目のデータ フレームの同じ列に現れないデータ フレーム列内のすべての値を識別する方法を示しています。

 #define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
                 conference=c('West', 'West', 'East', 'East'),
                 dots=c(88, 97, 94, 104))

df2 <- data. frame (team=c('A', 'B', 'C', 'D'),
                 conference=c('West', 'West', 'East', 'East'),
                 dots=c(88, 97, 98, 99))

#find differences between the points columns in the two data frames
setdiff (df1$points, df2$points)

[1] 94 104

94104 は最初のデータ フレームのポイント列に表示されますが、2 番目のデータ フレームのポイント列には表示されないことがわかります。

追加リソース

R で特定の列を合計する方法
R の特定の行を合計する方法
Rで部分文字列マッチングを実行する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です