Как выбрать случайные строки в R с помощью dplyr


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

Метод 1: выберите случайное количество строк

df %>% sample_n( 5 )

Эта функция случайным образом выбирает 5 строк из фрейма данных.

Способ 2: выбрать случайную часть строк

df %>% sample_frac( .25 )

Эта функция случайным образом выбирает 25% всех строк из фрейма данных.

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

#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
 points=c(10, 10, 8, 6, 15, 15, 12, 12),
 rebounds=c(8, 8, 4, 3, 10, 11, 7, 7))

#view data frame
df

 team points rebounds
1 A 10 8
2 B 10 8
3 C 8 4
4 D 6 3
5 E 15 10
6 F 15 11
7 G 12 7
8 H 12 7

Пример 1: выбор случайного количества строк

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

library(dplyr)

#randomly select 5 rows from data frame
df %>% sample_n( 5 )

 team points rebounds
1 F 15 11
2 A 10 8
3 D 6 3
4 G 12 7
5 B 10 8

Обратите внимание, что из фрейма данных случайным образом выбираются пять строк.

Пример 2: выбор случайной части строк

Мы можем использовать следующий код для случайного выбора 25% всех строк из фрейма данных:

library(dplyr)

#randomly select 25% of all rows from data frame
df %>% sample_frac( .25 )

 team points rebounds
1 E 15 10
2 G 12 7

Поскольку в исходном фрейме данных было всего 8 значений, 25% от 8 равно 2.

Таким образом, из фрейма данных случайным образом выбираются две строки.

Примечание : Вы можете найти полную документацию по функциям sample_n и sample_frac в dplyr здесь .

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

В следующих руководствах объясняется, как выполнять другие распространенные операции в dplyr:

Как выбрать столбцы по индексу с помощью dplyr
Как выбрать первую строку по группе с помощью dplyr
Как фильтровать по нескольким условиям с помощью dplyr
Как отфильтровать строки, содержащие определенную строку, с помощью dplyr