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


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

образец (x, размер, заменить = FALSE, prob = NULL)

куда:

  • x: вектор элементов, из которых можно выбирать.
  • размер: Размер выборки.
  • replace: следует ли пробовать с заменой или нет. По умолчанию ЛОЖЬ.
  • prob: Вектор вероятностных весов для получения элементов из вектора. Значение по умолчанию — NULL.

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

Пример 1: Случайная выборка из вектора

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

#create vector of data
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

#select random sample of 5 elements without replacement
sample(x=data, size=5)

[1] 10 12 5 14 7

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

#create vector of data
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

#select random sample of 5 elements with replacement
sample(x=data, size=5, replace= TRUE )

[1] 12 1 1 6 14

Пример 2: Случайная выборка из фрейма данных

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

#create data frame
df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14),
 y=c(12, 6, 4, 23, 25, 8, 9),
 z=c(2, 7, 8, 8, 15, 17, 29))

#view data frame 
df

 x y z
1 3 12 2
2 5 6 7
3 6 4 8
4 6 23 8
5 8 25 15
6 12 8 17
7 14 9 29

#select random sample of three rows from data frame
rand_df <- df[ sample ( nrow(df), size= 3 ), ]

#display randomly selected rows
rand_df

 x y z
4 6 23 8
7 14 9 29
1 3 12 2

Вот что происходит в этом фрагменте кода:

1. Чтобы выбрать подмножество фрейма данных в R, мы используем следующий синтаксис: df[строки, столбцы]

2. В приведенном выше коде мы случайным образом выбираем выборку из 3 строк из фрейма данных и всех столбцов.

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

Важно отметить, что каждый раз, когда мы используем функцию sample() , R будет выбирать другой образец, поскольку функция выбирает значения случайным образом.

Чтобы воспроизвести результаты какого-либо анализа, обязательно используйте set.seed(some number) , чтобы функция sample() каждый раз выбирала одну и ту же случайную выборку. Например:

#make this example reproducible
set.seed(23)

#create data frame
df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14),
 y=c(12, 6, 4, 23, 25, 8, 9),
 z=c(2, 7, 8, 8, 15, 17, 29))

#select random sample of three rows from data frame
rand_df <- df[ sample ( nrow(df), size= 3 ), ]

#display randomly selected rows
rand_df

 x y z
5 8 25 15
2 5 6 7
6 12 8 17

Каждый раз, когда вы запускаете приведенный выше код, каждый раз будут выбираться одни и те же 3 строки фрейма данных.

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

Стратифицированная выборка в R (с примерами)
Систематическая выборка в R (с примерами)
Кластерная выборка в R (с примерами)

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