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が返されます。

等々。

TRUEFALSE以外の値を返したい場合は、 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 のデータ フレームに列を追加する方法

コメントを追加する

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