Come confrontare tre colonne in r (con esempio)


È possibile utilizzare la seguente sintassi di base per confrontare i valori di tre colonne in R:

 df$all_matching <- df$A == df$B & df$B == df$C

Questa sintassi crea una nuova colonna chiamata all_matching che restituisce TRUE se tutte le colonne hanno valori corrispondenti, altrimenti restituisce FALSE .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: confrontare tre colonne in R

Supponiamo di avere il seguente frame di dati in R con tre colonne:

 #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

Possiamo utilizzare il codice seguente per creare una nuova colonna chiamata all_matching che restituisce TRUE se tutte e tre le colonne corrispondono in una determinata riga e FALSE in caso contrario:

 #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

La nuova colonna chiamata all_matching indica se i valori nelle tre colonne corrispondono o meno in una determinata riga.

Per esempio:

  • Tutti e tre i valori corrispondono nella prima riga, quindi viene restituito TRUE .
  • Non tutti i valori corrispondono nella seconda riga, quindi viene restituito FALSE .
  • Tutti e tre i valori corrispondono nella terza riga, quindi viene restituito TRUE .

E così via.

Se desideri restituire valori diversi da TRUE e FALSE , puoi specificare questi valori in una funzione ifelse() .

Ad esempio, possiamo utilizzare il seguente codice per restituire “Sì” se i valori in tutte e tre le colonne corrispondono o “No” altrimenti:

 #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

La nuova colonna ora restituisce “Sì” o “No” anziché TRUE o FALSE .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come verificare se esiste una colonna nel frame di dati in R
Come verificare se la colonna contiene una stringa in R
Come aggiungere una colonna al frame di dati in R in base ad altre colonne

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *