如何基于原始数据集的Estados抽取样本用于PCA与LASSO回归
R 数据集抽样实现方案
假设你的原始数据集命名为 df,以下是两种常用实现方式:
base R 版本
无需额外加载第三方包,直接用R内置函数实现:
- 随机抽取10个唯一的Estados地市值
selected_estados <- sample(levels(df$Estados), size = 10, replace = FALSE)
- 筛选出属于这10个地市的所有观测
filter_df <- df[df$Estados %in% selected_estados, ]
- 从筛选后的数据中抽取300条观测组成样本集
# 若筛选后总观测数不足300,可将replace参数改为TRUE开启有放回抽样 sample_df <- filter_df[sample(nrow(filter_df), size = 300, replace = FALSE), ]
tidyverse 版本
用dplyr语法实现,代码更简洁易读:
library(dplyr) # 固定随机种子可保证抽样结果可复现,数字可自定义 set.seed(123) sample_df <- df %>% # 先随机筛选10个Estados对应的所有观测 filter(Estados %in% sample(levels(Estados), size = 10, replace = FALSE)) %>% # 再抽取300条观测 slice_sample(n = 300, replace = FALSE)
验证方法
抽样完成后可执行以下代码校验结果是否符合要求:
- 查看选中的地市数量:
length(unique(sample_df$Estados))应返回10 - 查看样本总行数:
nrow(sample_df)应返回300 - 查看各地市的样本分布:
table(sample_df$Estados)
内容的提问来源于stack exchange,提问作者SaltySenator
相关产品推荐
相关产品推荐

