A: あるデータ フレームの行が別のデータ フレームに存在するかどうかを確認します。


次の構文を使用して、各行が別のデータ フレームに存在するかどうかを示す新しい列を R のデータ フレームに追加できます。

 df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)

この特定の構文は、 df1というデータ フレームに、 exit という列を追加します。この列には、 df1の各行がdf2という別のデータ フレームに存在するかどうかを示すTRUEまたはFALSE含まれます。

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

例: あるデータ フレームの行が R の別のデータ フレームに存在するかどうかを確認します。

R に次の 2 つのデータ フレームがあるとします。

 #create first data frame
df1 <- data. frame (team=c('A', 'B', 'C', 'D', 'E'),
                  dots=c(12, 15, 22, 29, 24))

#view first data frame
df1

  team points
1 to 12
2 B 15
3 C 22
4 D 29
5 E 24

#create second data frame
df2 <- data. frame (team=c('A', 'D', 'F', 'G', 'H'),
                  dots=c(12, 29, 15, 19, 10))

#view second data frame
df2

  team points
1 to 12
2 D 29
3 F 15
4 G 19
5:10 a.m.

次の構文を使用して、各行が 2 番目のデータ フレームに存在するかどうかを示す、exists という列を最初のデータ フレームに追加できます。

 #add new column to df1 that shows if row exists in df2
df1$exists <- do. call (paste0, df1) %in% do. call (paste0, df2)

#view updated data frame
df1

  team points exists
1 TO 12 TRUE
2 B 15 FALSE
3 C 22 FALSE
4 D 29 TRUE
5 E 24 FALSE

新しい列が存在することは、最初のデータ フレームの各行が 2 番目のデータ フレームに存在するかどうかを示します。

結果から次のことがわかります。

  • df1の最初の行はdf2に存在します。
  • df1の 2 行目はdf2には存在しません。
  • df1の 3 行目はdf2には存在しません。

等々。

is.numeric()を使用して、既存の列にTRUEまたはFALSEの代わりに10を表示することもできることに注意してください。

 #add new column to df1 that shows if row exists in df2
df1$exists <- as. numeric (do. call (paste0, df1) %in% do. call (paste0, df2))

#view updated data frame
df1

  team points exists
1 to 12 1
2 B 15 0
3 C 22 0
4 D 29 1
5 E 24 0

1は、最初のデータ ブロックの行が 2 番目のデータ ブロックに存在することを示します。

逆に、値0は、最初のデータ フレームの行が 2 番目のデータ フレームに存在しないことを示します。

追加リソース

次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。

A: 複数の列が等しいかどうかを確認する方法
A: データ フレーム内の単一行を選択する方法
A: データ フレーム内の行をレプリケートする方法

コメントを追加する

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