在编写从列联表中采样的函数时,我已经管理了下面的代码 - 与单元格中的频率成正比。
它使用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)!
我的大脑已经停止工作,我知道它必须是一个小调整才能让它回到正轨!?