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の代わりに1と0を表示することもできることに注意してください。
#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: データ フレーム内の行をレプリケートする方法