在R语言中,可以使用以下方法进行样本抽取:
简单随机抽样
使用`sample()`函数从数据集中随机抽取样本。
参数说明:
`data`:要抽样的数据集。
`size`:抽样的样本大小。
`replace`:是否允许重复抽样(默认为FALSE,即不允许重复抽样)。
`prob`:每个数据点被抽中的概率向量(如果未提供,则默认为均匀分布的概率)。
分层抽样
使用`strata()`函数进行分层抽样。
参数说明:
`data`:待抽样的数据集。
`stratanames`:分层依据的变量名称(可以为NULL)。
`size`:各层中抽取的样本数量。
`method`:抽样方法,包括无放回简单随机抽样(srswor)、有放回简单随机抽样(srswr)、泊松抽样(poisson)、系统抽样(systematic)。
`pik`:各层中各样本抽样概率。
`description`:是否输出含有各层基本信息的结果。
整群抽样
使用`cluster()`函数进行整群抽样。
参数说明:
`data`:总体数据框。
`clustername`:分群变量。
`size`:样本群数。
`method`:抽样方法,包括不放回简单随机抽样(srswor)、放回简单随机抽样(srswr)、泊松抽样(poisson)、系统抽样(systematic)。
`description`:逻辑型向量,取TRUE时输出包含各群基本信息的结果。
示例代码
简单随机抽样
```R
从向量中随机抽取10个样本,不重复
sample_vector <- sample(1:100, 10, replace = FALSE)
从数据框中随机抽取5行,不重复
data_frame <- data.frame(x = 1:100, y = 1:100)
sample_df <- sample(data_frame, 5, replace = FALSE)
```
分层抽样
```R
假设数据集按性别分层
data_frame$gender <- factor(data_frame$gender, levels = c("male", "female"))
按性别分层抽样,每层抽取3个样本
sample_strata <- strata(data_frame, stratanames = "gender", size = 3, method = "srswor")
```
整群抽样
```R
假设数据集包含住户信息
data_frame$cluster <- factor(sample(1:1000, 1000, replace = TRUE))
按群抽样,每群抽取10个样本
sample_cluster <- cluster(data_frame, clustername = "cluster", size = 10, method = "srswor")
```
通过这些方法,可以根据不同的需求和数据特点选择合适的抽样方法。