Повторный отбор проб без замены
Я хочу сгенерировать 10 случайных чисел из населения 1:1000, и код, который генерирует это число, повторяется 10 раз. Я хочу, чтобы выборка была без замены, чтобы пересечение между 10 наборами из 10 случайных чисел было нулевым.
Во-первых, если я использовал образец функции в r и установил replace в false, это не очень помогает, и когда я искал в Интернете, я нашел функцию для выполнения так называемой urn, но я не могу загрузить package в r. Короче говоря, я хочу сделать так же, как следующий код:
http://rss.acs.unt.edu/Rdoc/library/urn/html/urn.html но вручную вместо использования пакета urn
Я попробовал следующий код, но сгенерированные образцы не являются уникальными, где я выбираю строки из "данных" случайным образом
for(j in 1:10) {
x=unique(data[,2])
tr=sample(length(x),0.9*length(x),replace=FALSE)
}
2 ответа
Принимая во внимание комментарий @ElKamina, вы можете сгенерировать 100 номеров, используя sample
и распределить их в матрицу 10 х 10:
matrix(sample(1:1000, 100, FALSE), ncol=10)
Мне нравятся выборки из 100 значений и лучше всего помещать их в матрицу 10 на 10, но другой вариант - выбрать 1-ю 10 из полного списка, а затем использовать setdiff
чтобы вычислить набор без 10 уже выбранных, выберите еще 10 из этой группы, используйте setdiff
снова и т. д.
Этот способ может работать лучше, если вы заранее не знаете, сколько образцов или сколько в каждом образце, хотя в этих случаях вы могли бы использовать sample
случайным образом переставить весь список из 1000, а затем просто выбрать группы из переставленного списка.