У меня есть входной вектор vi
с логическими значениями.Я хочу взять случайную выборку размером n
из вектора, где значение равно true, поэтому конечный вектор vf
имеет эти свойства
Длина векторов равнаlength(vf) == length(v0)
vf
имеет n
истинные значения n==sum(vf)
Истинные значения в vf
не могут превышатьзначения в v0
n <= sum (v0) </p>
Все истинные значения в vf
также верны в vi
Векторы представляют выборку строк во фрейме данных, и это реализует стратифицированную выборку.До сих пор я выяснил, как использовать which()
для получения номеров строк, использовать sample()
для получения случайной выборки, но последняя часть воссоздает логический вектор.Есть, наверное, более элегантный способ?
Например:
n <- 1
v0 <- c(T,T,F,F)
vf <- c(T,F,F,F)