Как создать образец с помощью функции Sample в R


Функция sample() в R позволяет вам брать случайную выборку элементов из набора данных или вектора с заменой или без нее.

Основной синтаксис функции sample() следующий:

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

x : набор данных или вектор, из которого можно выбрать образец
size : размер образца
replace : должна ли выборка быть с заменой? (это ЛОЖЬ по умолчанию)
prob : вектор вероятностных весов для получения элементов выборочного вектора

Полную документацию по sample() можно найти здесь .

Следующие примеры иллюстрируют практические примеры использования sample().

Генерация выборки из вектора

Предположим, у нас есть вектор a с 10 элементами:

#define vector *a* with 10 elements in it
a <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

Чтобы сгенерировать случайную выборку из 5 элементов из вектора a без замены, мы можем использовать следующий синтаксис:

#generate random sample of 5 elements from vector *a*
sample(a, 5)

#[1] 3 1 4 7 5

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

#generate another random sample of 5 elements from vector *a*sample(a, 5)

#[1] 1 8 7 4 2

Если мы хотим иметь возможность воспроизвести наши результаты и каждый раз работать с одним и тем же образцом, мы можем использовать set.seed() .

#set.seed(some random number) to ensure that we get the same sample each time
set.seed(122)

#define vector *a* with 10 elements in it
a <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

#generate random sample of 5 elements from vector *a*sample(a, 5)

#[1] 10 9 2 1 4

#generate another random sample of 5 elements from vector *a*sample(a, 5)

#[1] 10 9 2 1 4

Мы также можем использовать аргумент replace = TRUE , чтобы производить выборку с заменой. Это означает, что каждый элемент вектора может быть выбран для включения в выборку более одного раза.

#generate random sample of 5 elements from vector *a* using sampling with replacement
sample(a, 5, replace = TRUE)

# 10 10 2 1 6

Генерация выборки из набора данных

Еще одно распространенное использование функции sample() — создание случайной выборки строк из набора данных. В следующем примере мы создадим случайную выборку из 10 строк из встроенного набора данных R iris , в котором всего 150 строк.

#view first 6 rows of iris dataset
head(iris)

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa

#set seed to ensure that this example is replicable
set.seed(100)

#choose a random vector of 10 elements from all 150 rows in iris dataset
sample_rows <- sample(1:nrow(iris), 10)
sample_rows

#[1] 47 39 82 9 69 71 117 53 78 25

#choose the 10 rows of the iris dataset that match the row numbers above
sample <- iris[sample_rows, ]
sample

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#47 5.1 3.8 1.6 0.2 setosa
#39 4.4 3.0 1.3 0.2 setosa
#82 5.5 2.4 3.7 1.0 versicolor
#9 4.4 2.9 1.4 0.2 setosa
#69 6.2 2.2 4.5 1.5 versicolor
#71 5.9 3.2 4.8 1.8 versicolor
#117 6.5 3.0 5.5 1.8 virginica
#53 6.9 3.1 4.9 1.5 versicolor
#78 6.7 3.0 5.0 1.7 versicolor
#25 4.8 3.4 1.9 0.2 setosa

Обратите внимание: если вы скопируете и вставите приведенный выше код в свою собственную консоль R, вы должны получить точно такой же образец, поскольку мы использовали set.seed(100) , чтобы каждый раз получать один и тот же образец.

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