Как выбрать случайные образцы в r: с примерами
Чтобы выбрать случайную выборку в R, мы можем использовать функцию sample() , которая использует следующий синтаксис:
образец (x, размер, замена = FALSE, проба = NULL)
Золото:
- x: вектор элементов на выбор.
- размер: размер выборки.
- replace: производить ли выборку с заменой или нет. Значение по умолчанию неверно.
- проба: вектор весов вероятности для получения элементов из вектора. Значение по умолчанию — НУЛЬ.
В этом руководстве объясняется, как использовать эту функцию для выбора случайной выборки в 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. Конечным результатом является подмножество фрейма данных с тремя случайно выбранными строками.
Важно отметить, что каждый раз, когда мы используем функцию sample() , R будет выбирать другой образец, поскольку функция выбирает значения случайным образом.
Чтобы воспроизвести результаты определенного анализа, обязательно используйте set.seed(некоторое число) , чтобы функция 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: с примерами