正如所指出的nico你可能只需要使用unique
功能。下面是一个非常简单的抽样程序,它确保各组之间不会出现重复(这并不完全合理,因为您可以只创建一个大样本......)
# Getting some random values to use here
set.seed(seed = 14412)
thevalues <- sample(x = 1:100,size = 1000,replace = TRUE)
# Obtaining the unique vector of those values
thevalues.unique <- unique(thevalues)
# Create a sample without replacement (i.e. take the ball out and don't put it back in)
sample1 <- sample(x = thevalues.unique,size = 10,replace = FALSE)
# Remove the sampled items from the vector of values
thevalues.unique <- thevalues.unique[!(thevalues.unique %in% sample1)]
# Another sample, and another removal
sample2 <- sample(x = thevalues.unique,size = 10,replace = FALSE)
thevalues.unique <- thevalues.unique[!(thevalues.unique %in% sample2)]
做什么eipi10提到并得到加权分布,你只需要先得到分布的频率。这样做的一种方法:
set.seed(seed = 14412)
thevalues <- sample(x = 1:100,size = 1000,replace = TRUE,prob = c(rep(0.01,100)))
thevalues.unique <- unique(thevalues)
thevalues.unique <- thevalues.unique[order(thevalues.unique)]
thevalues.probs <- table(thevalues)/length(thevalues)
sample1 <- sample(x = thevalues.unique,
size = 10,
replace = FALSE,
prob = thevalues.probs)