R语言如何实现不重复的分组抽样?
时间: 2024-12-13 14:15:09 浏览: 9
在R语言中,如果你想要在分组抽样时不重复地选取元素(即每个组内的抽样只抽取唯一的数据),可以结合`sample()`函数和`unique()`函数。当设置`replace = FALSE`时,`sample()`会默认选择唯一的样本。假设你有一个数据框`df`,其中`group`列代表分组,你可以这样做:
```R
# 假设df是一个data.frame,且已经按group分好组
unique_samples <- function(group_df, n_per_group) {
unique_sample <- function(x) sample(unique(x), n_per_group, replace = FALSE)
grouped_samples <- lapply(split(df, df$group), unique_sample)
do.call(rbind, grouped_samples)
}
result <- unique_samples(df, n) # n是你想要每组抽取的样本数
```
在这个例子中,`unique_sample()`函数会在每个组中抽取指定数量的唯一样本,然后`lapply()`遍历并应用这个函数到每个组,最后`do.call(rbind, ...)`把所有组的结果合并成一个大的数据框。
阅读全文