Как сделать неслучайную выборку - PullRequest
0 голосов
/ 26 апреля 2018

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

acct_num <- c('4525','52222','22892','67181','67733','737382',
              '5534','2228','7282','45622')
Probability <- runif(10, min = 0, max = 10)
acct_details <- data.frame(acct_num, Probability)

acct_details

acct_num    Probability
4525    5.7406891
52222   0.8903079
22892   6.4435008
67181   2.2208483
67733   9.0374168
737382  0.8676233
5534    1.8472735
2228    8.4051774
7282    1.4664209
45622   1.8274586

Следующий код выполняет заказ и разделяет, но не поддерживает порядок. Пример: если я разделю это на 5 равных частей, это должно быть как (1,2) (3,4), (5,6) (7,8), (9,10)

stopifnot(nrow(acct_details2) %% 5 == 0)
acct_details2    <- acct_details2[order(runif(nrow(acct_details2))),]
bins  <- rep(1:5, nrow(acct_details2) / 5)
split(acct_details2, bins)

1 Ответ

0 голосов
/ 26 апреля 2018
acct_details2 <- acct_details[order(acct_details$Probability),] #orders the probability

разделяет данные в равной степени, сохраняя порядок

split_data <- split(acct_details2, rep(1:5, each = 2)) # thanks to Gregor and hpesoj

вывод с вероятностью в порядке

$`1`
acct_num    Probability
6   737382  0.9741298
1   4525    1.5790106
$`2`
acct_num    Probability
8   2228    2.140016
7   5534    2.849498
$`3`
acct_num    Probability
9   7282    6.134280
3   22892   6.375977
$`4`
acct_num    Probability
2   52222   7.101398
10  45622   7.787715
$`5`
acct_num    Probability
4   67181   8.928878
5   67733   9.610741
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...