A: come verificare se più colonne sono uguali


È possibile utilizzare i seguenti metodi per verificare se più colonne sono uguali in un frame di dati in R:

Metodo 1: controlla se tutte le colonne sono uguali

 library (dplyr)

#create new column that checks if all columns are equal
df <- df %>%
        rowwise %>%
        mutate(match = n_distinct(unlist(cur_data())) == 1 ) %>%
        A group()

Metodo 2: controlla se le colonne specifiche sono uguali

 library (dplyr)

#create new column that checks if columns 'A', 'C', and 'D' are equal
df_temp <- df %>%
             select(' A ', ' C ', ' D ') %>%
             rowwise %>%
             mutate(match = n_distinct(unlist(cur_data())) == 1 ) %>%
             A group()

#add new column to existing data frame
df$match <- df_temp$match

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente frame di dati:

 #create data frame
df = data. frame (A=c(4, 0, 3, 3, 6, 8, 7),
                B=c(4, 2, 3, 5, 6, 4, 7),
                C=c(4, 0, 3, 3, 5, 10, 7),
                D=c(4, 0, 3, 3, 3, 8, 7))

#view data frame
df

  ABCD
1 4 4 4 4
2 0 2 0 0
3 3 3 3 3
4 3 5 3 3
5 6 6 5 3
6 8 4 10 8
7 7 7 7 7

Esempio 1: controlla se tutte le colonne sono uguali

Possiamo usare la seguente sintassi per verificare se il valore di ciascuna colonna nel frame di dati è uguale per ogni riga:

 library (dplyr)

#create new column that checks if all columns are equal
df <- df %>%
        rowwise %>%
        mutate(match = n_distinct(unlist(cur_data())) == 1 ) %>%
        A group()

#view updated data frame
df

# A tibble: 7 x 5
      ABCD match
      
1 4 4 4 4 TRUE 
2 0 2 0 0 FALSE
3 3 3 3 3 TRUE 
4 3 5 3 3 FALSE
5 6 6 5 3 FALSE
6 8 4 10 8 FALSE
7 7 7 7 7 TRUE 

Se il valore di ciascuna colonna è uguale, la colonna corrispondente restituisce True .

Altrimenti restituisce False .

Tieni presente che puoi convertire i valori True e False in 1 e 0 utilizzando as.numeric() come segue:

 library (dplyr)

#create new column that checks if all columns are equal
df <- df %>%
        rowwise %>%
        mutate(match = as. numeric (n_distinct(unlist(cur_data())) == 1 )) %>%
        A group()

#view updated data frame
df

# A tibble: 7 x 5
      ABCD match
      
1 4 4 4 4 1
2 0 2 0 0 0
3 3 3 3 3 1
4 3 5 3 3 0
5 6 6 5 3 0
6 8 4 10 8 0
7 7 7 7 7 1

Esempio 2: controlla se le colonne specifiche sono uguali

Possiamo utilizzare la seguente sintassi per verificare se i valori nelle colonne A, C e D del frame di dati sono uguali per ogni riga:

 library (dplyr)

#create new column that checks if columns 'A', 'C', and 'D' are equal
df_temp <- df %>%
             select(' A ', ' C ', ' D ') %>%
             rowwise %>%
             mutate(match = n_distinct(unlist(cur_data())) == 1 ) %>%
             A group()

#add new column to existing data frame
df$match <- df_temp$match

#view updated data frame
df

  ABCD match
1 4 4 4 4 TRUE
2 0 2 0 0 TRUE
3 3 3 3 3 TRUE
4 3 5 3 3 TRUE
5 6 6 5 3 FALSE
6 8 4 10 8 FALSE
7 7 7 7 7 TRUE

Se i valori nelle colonne A, C e D sono uguali, la colonna corrispondente restituisce True .

Altrimenti restituisce False .

Risorse addizionali

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

Come ordinare per più colonne in R
Come preservare alcune colonne in R
Come contare il numero di occorrenze nelle colonne in R

Aggiungi un commento

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