R で 3 つの列を比較する方法 (例あり)
次の基本構文を使用して、R の 3 つの列の値を比較できます。
df$all_matching <- df$A == df$B & df$B == df$C
この構文は、 all_matchingという新しい列を作成します。これは、すべての列に一致する値がある場合はTRUEを返し、それ以外の場合はFALSEを返します。
次の例は、この構文を実際に使用する方法を示しています。
例: R の 3 つの列を比較します。
R に 3 つの列を持つ次のデータ フレームがあるとします。
#create data frame df <- data. frame (A=c(4, 0, 3, 3, 6, 8, 7, 9, 12), B=c(4, 2, 3, 5, 6, 4, 7, 7, 12), C=c(4, 0, 3, 5, 5, 10, 7, 9, 12)) #view data frame df ABC 1 4 4 4 2 0 2 0 3 3 3 3 4 3 5 5 5 6 6 5 6 8 4 10 7 7 7 7 8 9 7 9 9 12 12 12
次のコードを使用して、指定された行で 3 つの列すべてが一致する場合はTRUEを返し、一致しない場合はFALSE を返すall_matchingという新しい列を作成できます。
#create new column that checks if values in all three columns match df$all_matching <- df$A == df$B & df$B == df$C #view updated data frame df ABC all_matching 1 4 4 4 TRUE 2 0 2 0 FALSE 3 3 3 3 TRUE 4 3 5 5 FALSE 5 6 6 5 FALSE 6 8 4 10 FALSE 7 7 7 7 TRUE 8 9 7 9 FALSE 9 12 12 12 TRUE
all_matchingという新しい列は、3 つの列の値が特定の行で一致するかどうかを示します。
例えば:
- 最初の行では 3 つの値がすべて一致するため、 TRUEが返されます。
- 2行目ではすべての値が一致するわけではないため、 FALSEが返されます。
- 3 行目では 3 つの値がすべて一致するため、 TRUEが返されます。
等々。
TRUEとFALSE以外の値を返したい場合は、 ifelse()関数でこれらの値を指定できます。
たとえば、次のコードを使用すると、3 つの列すべての値が一致する場合は「Yes」を返し、そうでない場合は「No」を返すことができます。
#create new column that checks if values in all three columns match df$all_matching <- ifelse(df$A == df$B & df$B == df$C, ' Yes ', ' No ') #view updated data frame df ABC all_matching 1 4 4 4 Yes 2 0 2 0 No 3 3 3 3 Yes 4 3 5 5 No 5 6 6 5 No 6 8 4 10 No 7 7 7 7 Yes 8 9 7 9 No 9 12 12 12 Yes
新しい列は、 TRUEまたはFALSEではなく、「Yes」または「No」を返すようになりました。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。
Rのデータフレームに列が存在するかどうかを確認する方法
列にRの文字列が含まれているかどうかを確認する方法
他の列に基づいて R のデータ フレームに列を追加する方法