A: como verificar se várias colunas são iguais
Você pode usar os seguintes métodos para verificar se várias colunas são iguais em um quadro de dados em R:
Método 1: verifique se todas as colunas são iguais
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()
Método 2: verifique se colunas específicas são iguais
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
Os exemplos a seguir mostram como usar cada método na prática com o seguinte quadro de dados:
#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
Exemplo 1: Verifique se todas as colunas são iguais
Podemos usar a seguinte sintaxe para verificar se o valor de cada coluna no quadro de dados é igual para cada linha:
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 o valor de cada coluna for igual, a coluna correspondente retornará True .
Caso contrário, retorna False .
Observe que você pode converter valores True e False em 1 e 0 usando as.numeric() da seguinte forma:
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
Exemplo 2: Verifique se colunas específicas são iguais
Podemos usar a seguinte sintaxe para verificar se os valores nas colunas A, C e D do quadro de dados são iguais para cada linha:
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 os valores nas colunas A, C e D forem iguais, a coluna correspondente retornará True .
Caso contrário, retorna False .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como classificar por múltiplas colunas em R
Como preservar certas colunas em R
Como contar o número de ocorrências em colunas em R