Как фильтровать таблицу данных в r (с примерами)
Вы можете использовать следующие методы для фильтрации строк из таблицы данных в R:
Способ 1. Фильтрация строк по одному условию
dt[col1 == ' A ', ]
Способ 2. Фильтрация строк, содержащих значение в списке.
dt[col1 %in% c(' A ', ' C '), ]
Способ 3. Фильтрация строк, для которых выполняется одно из нескольких условий.
dt[col1 == ' A ' | col2 < 10 , ]
Способ 4. Отфильтруйте строки, в которых соблюдено несколько условий.
dt[col1 == ' A ' & col2 < 10 , ]
В следующих примерах показано, как использовать каждый метод на практике со следующей таблицей данных в 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. Фильтрация строк по условию
Следующий код показывает, как фильтровать только те строки, значение которых в столбце команды равно «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. Фильтрация строк, содержащих значение в списке
Следующий код показывает, как фильтровать только те строки, значение которых в столбце команды равно «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. Фильтрация строк, для которых выполняется одно из нескольких условий
Следующий код показывает, как фильтровать только те строки, значение которых в столбце команды равно «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. Фильтрация строк, в которых соблюдено несколько условий
Следующий код показывает, как фильтровать только те строки, где значение в столбце команды равно «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