R で「not in」演算子を使用する方法 (例あり)


次の基本構文を使用して、R の値のリストにないすべての要素を選択できます。

 ! (data %in% c(value1, value2, value3, ...))

次の例は、この構文を実際に使用する方法を示しています。

例 1: ベクトルで「NOT IN」を使用する方法

次のコードは、特定の値のリストにない R のベクトルの値をすべて選択する方法を示しています。

 #define numeric vector
num_data <- c(1, 2, 3, 3, 4, 4, 5, 5, 6)

#display all values in vector not equal to 3 or 4
num_data[ ! (num_data %in% c(3, 4))]

[1] 1 2 5 5 6

3 または 4 に等しくないすべての値が出力に表示されます。

同じ構文を使用して、特定の文字リストに含まれていないベクトルの要素をすべて選択できることに注意してください。

 #define vector of character data
char_data <- c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'D')

#display all elements in vector not equal to 'A', or 'C'
char_data[ ! (char_data %in% c('A', 'C'))]

[1] “B” “B” “D” “D” “D”

「A」または「C」に等しくない値は出力に表示されます。

例 2: データ フレームで「NOT IN」を使用する方法

次のコードは、特定の列が特定の値と等しくない R のデータ フレームのすべての行を選択する方法を示しています。

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (team %in% c('A', 'B')))

  team points assists
5 C 99 32
6 C 92 39
7 D 97 14

チーム列に「A」または「B」がない行が返されることに注意してください。

同様の構文を使用して、特定の列が特定の数値と等しくないすべての行を選択することもできます。

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (points %in% c(89, 99)))

  team points assists
1 A 77 19
2 A 81 22
4 B 83 15
6 C 92 39
7 D 97 14

ポイント列の 89 または 99 に等しくないすべての行が返されることに注意してください。

追加リソース

R で %in% 演算子を使用する方法
R でデータ フレームをサブセット化する方法
R でリストをサブセット化する方法

コメントを追加する

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