我正在使用R的sample()函数进行二次采样。
x <- 100
y <- 10
probs <- c(rep(0.30, 3), rep(0.10/7, 7))
prop.y <- 0.05
subset.y <- sort(sample(y, size = ceiling(prop.y * y), replace = FALSE))
sample(subset.y, size = x, replace = TRUE, prob = probs[subset.y])
运行上述代码行时出现错误
Error in sample.int(x, size, replace, prob) :
incorrect number of probabilities
问题出在代码的最后一行。
在这种情况下,subset.y包含整数数据类型(例如1L)。
但是,当prop.y大于1 / y,即0.11时,就没有问题。在这种情况下,subset.y包含长度为2的int数据类型。
有人可以解释吗?