Як відфільтрувати data.table в r (з прикладами)


Щоб відфільтрувати рядки з таблиці data.table в R, можна використовувати такі методи:

Спосіб 1. Фільтруйте рядки на основі однієї умови

 dt[col1 == ' A ', ]

Спосіб 2. Відфільтруйте рядки, що містять значення в списку

 dt[col1 %in% c(' A ', ' C '), ]

Спосіб 3. Фільтруйте рядки, для яких виконується одна з кількох умов

 dt[col1 == ' A ' | col2 < 10 , ]

Спосіб 4. Фільтруйте рядки, де виконано кілька умов

 dt[col1 == ' A ' & col2 < 10 , ]

У наведених нижче прикладах показано, як використовувати кожен метод на практиці з такою таблицею data.table в R:

 library (data.table)

#create data table
dt <- data. table (team=c('A', 'A', 'A', 'B', 'C'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#view data table
dt

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24
5: C 95 34 28

Приклад 1: фільтрування рядків на основі умови

У наступному коді показано, як фільтрувати лише рядки, значення яких у стовпці team дорівнює “A”:

 #filter for rows where team is A
dt[team == ' A ', ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24

Приклад 2: фільтрування рядків, що містять значення в списку

Наступний код показує, як фільтрувати лише рядки, значення яких у стовпці team дорівнює «A» або «C»:

 #filter for rows where team is A or C
dt[team %in% c(' A ', ' C '), ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: C 95 34 28

Пов’язане: як використовувати оператор %in% у R (з прикладами)

Приклад 3. Фільтруйте рядки, для яких виконується одна з кількох умов

У наведеному нижче коді показано, як відфільтрувати лише рядки, значення яких у стовпці team дорівнює “A” або значення в стовпці балів менше 90:

 #filter for rows where team is A or points < 90
dt[team == ' A ' | points < 90 , ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24

Примітка : | Оператор означає “АБО” в R.

Приклад 4. Фільтруйте рядки, де виконано кілька умов

У наведеному нижче коді показано, як фільтрувати лише ті рядки, у яких значення в стовпці team дорівнює «A» , а значення в стовпці балів менше 90:

 #filter for rows where team is A and points < 90
dt[team == ' A ' & points < 90 , ]

   team points assists rebounds
1: A 86 31 24

Примітка : оператор & означає «І» в R.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в R:

Як відфільтрувати вектор у R
Як видалити рядки з нулями в R
Як видалити порожні рядки з кадру даних у R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *