Случайно выбрать образец в R - PullRequest
0 голосов
/ 03 марта 2019

Мне нужно найти способ случайного выбора выборки в R из набора S. Набор S состоит из выборок из набора I1.

I1 <- c(1,2,3,4,5,6)
s1 <- c(1,2,1)
s2 <- c(1,5,6)
s3 <- c(2,1,1)
s4 <- c(5,1,1,6)
s5 <- c(3,4)
s6 <- c(4,3) 

Каждому семплу присваивается значение P от 0 до 1. Мне нужно найти наилучший способ генерирования числа от 0 до 1 и выбрать соответствующий семпл.Вот что я сделал:

x <- runif(1, min = 0, max = 100) 
if(x>=0 & x<=20) {                
  print("s1")
}
if (x>=21 & x<=30) {
  print("s2")
}
if(x>=31 & x<=40) {
  print("s3")
}
if(x>=41 & x<=65) {
  print("s4")
}
if(x>=66 & x<=80) {
  print("s5")
}
if(x>=81 & x<=100) {
  print("s6")
}

Кто-нибудь знает лучший способ сделать это?

1 Ответ

0 голосов
/ 03 марта 2019

sample будет самым простым способом.Как я понимаю, вы хотите получить имя набора?

Если это так, то используйте

sample(c('s1', 's2', 's3', 's4', 's5', 's6'), size = 1, prob = c(20, 10, 10, 25, 15, 20))

В случае, если вы хотите получить сам набор, используйте список наборов в качестве объекта дляизвлекать из (необходимо добавить [[1]] в конце выписки):

sample(list(s1, s2, s3, s4, s5, s6), size = 1, prob = c(20, 10, 10, 25, 15, 20))[[1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...