Как создать подмножество фрейма данных в R (4 примера)


Вы можете использовать следующий базовый синтаксис для подмножества фрейма данных в R:

df[rows, columns]

В следующих примерах показано, как использовать этот синтаксис на практике со следующим фреймом данных:

#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'C', 'C', 'C'),
 points=c(77, 81, 89, 83, 99, 92, 97),
 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

 team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 C 97 14

Пример 1: подмножество фрейма данных путем выбора столбцов

В следующем коде показано, как подмножить фрейм данных по именам столбцов:

#select all rows for columns 'team' and 'assists'
df[ , c('team', 'assists')]

 team assists
1 A 19
2 A 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

Мы также можем подмножить фрейм данных значениями индекса столбца:

#select all rows for columns 1 and 3
df[ , c(1, 3)]

 team assists
1 A 19
2 A 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

Пример 2: подмножество фрейма данных путем исключения столбцов

В следующем коде показано, как создать подмножество фрейма данных, исключив определенные имена столбцов:

#define columns to exclude
cols <- names(df) %in% c('points')

#exclude points column
df[!cols]

 team assists
1 A 19
2 A 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

Мы также можем исключить столбцы, используя значения индекса.

#exclude column 2
df[ , c(-2)]

 team assists
1 A 19
2 A 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

Пример 3: Подмножество фрейма данных путем выбора строк

В следующем коде показано, как подмножить фрейм данных по определенным строкам:

#select rows 1, 5, and 7
df[c(1, 5, 7), ]

 team points assists
1 A 77 19
5 C 99 32
7 C 97 14

Мы также можем подмножить фрейм данных, выбрав диапазон строк:

#select rows 1 through 5
df[1:5, ]

 team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32

Пример 4: Фрейм данных подмножества на основе условий

В следующем коде показано, как использовать функцию subset() для выбора строк и столбцов, соответствующих определенным условиям:

#select rows where points is greater than 90
subset(df, points > 90)

 team points assists
5 C 99 32
6 C 92 39
7 C 97 14

Мы также можем использовать | ("или") для выбора строк, которые удовлетворяют одному из нескольких условий:

#select rows where points is greater than 90 or less than 80
subset(df, points > 90 | points < 80)

 team points assists
1 A 77 19
5 C 99 32
6 C 92 39
7 C 97 14

Мы также можем использовать оператор & («и») для выбора строк, соответствующих нескольким условиям:

#select rows where points is greater than 90 *and* assists is greater than 30
subset(df, points > 90 & assists > 30)

 team points assists
5 C 99 32
6 C 92 39

Мы также можем использовать аргумент select для выбора только определенных столбцов на основе условия:

#select rows where points is greater than 90 and only show 'team' column
subset(df, points > 90, select=c('team'))

 team
5 C
6 C
7 C

Дополнительные ресурсы

Как удалить строки из фрейма данных в R на основе условия
Как заменить значения во фрейме данных в R
Как удалить столбцы из фрейма данных в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.