You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R语言从birthwt数据集中随机选取90%的样本?

从birthwt数据集中随机选取90%样本的正确R方法

你写的代码 y1<-sample(bwt11,0.9,replace=TRUE) 存在问题:直接对数据框使用sample()函数会随机抽取列而非行,无法得到你想要的90%样本行。以下是两种正确实现方式:

方法一:基础R实现

通过抽取行索引来筛选样本:

# 设置随机种子保证结果可复现(可选但推荐)
set.seed(123)
# 获取数据集总行数
total_rows <- nrow(bwt11)
# 抽取90%行的随机索引
sample_rows <- sample(total_rows, size = round(0.9 * total_rows), replace = FALSE)
# 根据索引筛选样本
y1 <- bwt11[sample_rows, ]
  • replace=FALSE表示无放回抽样(默认值,可省略),避免同一行被重复选中;
  • round()用来确保抽取的行数为整数(因为0.9×总行数可能不是整数)。

方法二:dplyr包简化实现

如果你习惯使用tidyverse工具链,dplyr的sample_frac()函数可以直接按比例抽取样本:

library(dplyr)
set.seed(123) # 可选,保证结果一致
y1 <- bwt11 %>% sample_frac(0.9, replace = FALSE)

内容的提问来源于stack exchange,提问作者Rakib Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 08:20:49