Мне удалось дописать код, приведенный ниже, при написании функции для выборки из таблицы непредвиденных обстоятельств - пропорциональной частотам в ячейках.Отбор проб из таблицы непредвиденных обстоятельств
Он использует expand.grid
, а затем table
, чтобы вернуться к исходной таблице размеров. Это работает отлично, пока размер выборки достаточно велик, что некоторые категории не полностью отсутствуют. В противном случае команда table
возвращает таблицу меньших размеров, чем оригинальная.
FunSample<- function(Full, n) {
Frame <- expand.grid(lapply(dim(Full), seq))
table(Frame[sample(1:nrow(Frame), n, prob = Full, replace = TRUE), ])
}
Full<-array(c(1,2,3,4), dim=c(2,2,2))
FunSample(Full, 100) # OK
FunSample(Full, 1) # not OK, I want it to still have dim=c(2,2,2)!
Мой мозг перестал работать, я знаю, что это должен быть небольшой настройки, чтобы получить его обратно на трек !?
Спасибо Нил, это красивое и элегантное решение, я изменил ответ на ваш! – maja