R中data.frame的嵌套采样

nested sampling of a data.frame in R

在下面的data.framep中,有757个独特的区名(dname)和5210个独特的学校名(sname ).

我想知道如何从 R 中的 40 dnames(地区)中抽样 126 snames(学校)?

因此,在最终示例中(比如 X),dim(table(X$dname, X$sname)) 必须 return:> [1] 40 126

从某种意义上说,这是 multi-stage sampling,所以我对任何包裹都持开放态度。

p <- read.csv("https://raw.githubusercontent.com/hkil/m/master/a.csv")

我猜你可以试试下面的代码来解决这种 multi-stage sampling

unq_dname <- unique(p$dname)
repeat {
  out <- subset(p, dname %in% sample(unq_dname, 40))
  if (length(unique(out$sname)) == 126) break
}

您可以通过

检查尺寸
dim(with(out,table(dname,sname)))