Выборка случайных строк кадра данных в R с заменой

Я хочу иметь возможность генерировать некоторые доверительные интервалы для некоторой тестовой статистики с помощью начальной загрузки. Что я хотел бы сделать, так это нарисовать самонастраиваемый набор данных с использованием выборки с заменой из моего исходного набора данных. Я предполагаю, что это будет набор данных размера n (где n меньше, чем размер исходного набора данных), который отбирает наблюдения / строки данных из полного набора данных с заменой (так что некоторые строки могут быть нарисованы дважды).

Код, который у меня есть для одной итерации, следующий:

samp <- dat[sample(nrow(dat), 100000), ]

Этот код выбирает 100 тыс. Строк из моего набора данных (dat).

Мои вопросы следующие:

Этот код производит выборку строк с заменой? И правильно ли мое предположение: самонастраиваемый набор данных с использованием выборки с заменой эквивалентен выборке набора данных размером n (меньше исходного набора данных), который случайным образом рисует строки данных из полного набора данных с заменой (это загрузка с заменой)?


person Kaitlin    schedule 10.09.2018    source источник


Ответы (2)


Это отвечает на первую часть вашего вопроса -

Код не является выборкой с заменой, для этого вам нужно будет добавить replace=TRUE, поскольку по умолчанию для sample не заменять, т.е. samp <- dat[sample(nrow(dat), 100000, replace=TRUE), ]

Мы можем изучить это с помощью тестового примера. Сначала сгенерируйте данные:

dat <- data.frame(Number=c(seq(1:10)))

затем запустите пример кода, который вы дали

samp <- dat[sample(nrow(dat),10,]

затем посмотрите, не появилось ли каких-либо чисел более одного, т.е. они дублируются:

duplicated(samp)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

Выполнить еще раз, включая аргумент replace=TRUE:

samp <- dat[sample(nrow(dat),10,replace=TRUE),]
duplicated(samp)
[1] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE

TRUEs означают, что есть дублирование, т.е. замена выполнена.

person dpel    schedule 21.07.2020

Этот код производит выборку строк с заменой? → Да

person broken.eggshell    schedule 10.09.2018
comment
По умолчанию для sample установлено значение replace=FALSE, т. Е. Нет выборки с заменой. - person dpel; 04.12.2019