A: як перевірити, чи кілька стовпців рівні
Щоб перевірити, чи рівні кілька стовпців у кадрі даних у R, можна використовувати такі методи:
Спосіб 1. Перевірте, чи всі стовпці рівні
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()
Спосіб 2. Перевірте, чи рівні певні стовпці
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
У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким кадром даних:
#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
Приклад 1. Перевірте , чи всі стовпці рівні
Ми можемо використати такий синтаксис, щоб перевірити, чи значення кожного стовпця у фреймі даних є рівним для кожного рядка:
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
Якщо значення кожного стовпця однакове, відповідний стовпець повертає True .
В іншому випадку він повертає False .
Зверніть увагу, що ви можете перетворити значення True і False на 1 і 0 за допомогою as.numeric() наступним чином:
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
Приклад 2. Перевірте, чи рівні певні стовпці
Ми можемо використовувати наступний синтаксис, щоб перевірити, чи рівні значення в стовпцях A, C і D кадру даних для кожного рядка:
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
Якщо значення в стовпцях A, C і D рівні, відповідний стовпець повертає значення True .
В іншому випадку він повертає False .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як сортувати за кількома стовпцями в R
Як зберегти певні стовпці в R
Як підрахувати кількість входжень у стовпці в R