У меня есть вектор с 48 числами в нем, и мне нужно случайным образом выбрать 26 чисел из этого вектора без замены и сохранить их в векторе. Мне также нужно хранить оставшиеся 22 числа в отдельном векторе. Я знаю, как случайным образом выбрать 26 номеров без замены и сохранить их, но у меня возникают трудности с поиском 22 оставшихся номеров. Спасибо за помощь.
Вот один из способов:
v <- 1:48 chosen <- sample(rep(c(TRUE, FALSE), c(26, 22))) v[chosen] #one set v[!chosen] #its complement
Вы можете создать случайную выборку из признаков и взять первые 26. Остальные 22 - ваши "остатки".
i <- sample(1:48) x1 <- x[i[1:26]] # main sample x2 <- x[i[27:48]] # left-overs
Вы можете использовать setdiff, чтобы получить оставшиеся числа.
setdiff
total_numbers <- 1:48 first_set <- sample(total_numbers, 26) remaining_set <- setdiff(total_numbers, first_set)
Я предполагаю, что у вас есть уникальные числа в total_numbers.
total_numbers
Вы можете использовать синтаксис %in% примерно так:
%in%
numbers1 <- sample(x, 26, replacement = false) numbers2 <- x[!which(x %in% numbers1)]