R中的分层抽样或比例抽样

2023-12-03

我生成的数据集如下:

myData <- data.frame(a=1:N,b=round(rnorm(N),2),group=round(rnorm(N,4),0))

数据看起来像这样

enter image description here

我想生成一组分层样本myData给定样本量,即50。所得样本集应遵循原始数据集“组”的比例分配。例如,假设myData有 20 条记录属于第 4 组,那么结果数据集应具有50*20/200=5属于组 4 的记录。如何在 R 中执行此操作。


您可以使用my stratified功能,指定一个

## Sample data. Seed for reproducibility 
set.seed(1)
N <- 50
myData <- data.frame(a=1:N,b=round(rnorm(N),2),group=round(rnorm(N,4),0))

## Taking the sample
out <- stratified(myData, "group", .3)
out
#     a     b group
# 17 17 -0.02     2
# 8   8  0.74     3
# 25 25  0.62     3
# 49 49 -0.11     3
# 4   4  1.60     3
# 26 26 -0.06     4
# 27 27 -0.16     4
# 7   7  0.49     4
# 12 12  0.39     4
# 40 40  0.76     4
# 32 32 -0.10     4
# 9   9  0.58     5
# 42 42 -0.25     5
# 43 43  0.70     5
# 37 37 -0.39     5
# 11 11  1.51     6

将最终组中的计数与我们的预期进行比较。

round(table(myData$group) * .3)
# 
# 2 3 4 5 6 
# 1 4 6 4 1 
table(out$group)
# 
# 2 3 4 5 6 
# 1 4 6 4 1 

您还可以轻松地每组抽取固定数量的样本,如下所示:

stratified(myData, "group", 2)
#     a     b group
# 34 34 -0.05     2
# 17 17 -0.02     2
# 49 49 -0.11     3
# 22 22  0.78     3
# 12 12  0.39     4
# 7   7  0.49     4
# 18 18  0.94     5
# 33 33  0.39     5
# 45 45 -0.69     6
# 11 11  1.51     6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R中的分层抽样或比例抽样 的相关文章

  • 如何使用核心 R 操作/访问“dist”类实例的元素?

    R 中的基本 公共类称为 dist 并且是对称距离矩阵的相对有效的表示 不像一个 matrix 对象 但是 似乎不支持操纵 dist 使用索引对实例 操作员 例如 以下代码不返回任何内容 NULL 或出现错误 First create an
  • 每行和每列都有条件的随机值(0 和 1)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 您好 我正在尝试在 R 中创建一个 600 行和 18 列的数据框 但是 每行 18 列中只能随机有 3 个 1 例如 A E F 列
  • 在 ggplot2 中使用 FontAwesome 作为点的替代品

    这可能是一个相当基本的事情 但我似乎找不到有意义的答案 我正在尝试使用 R 中的 fontawesome 包将表情符号用作 ggplot2 图表中的点 但我很难弄清楚如何为每个变量分配不同的表情符号 这是一些示例数据 我们将数据框称为 样本
  • 在 RStudio 中自动格式化 R 代码

    RStudio 中是否有自动格式化代码的可能性 I found this https stackoverflow com questions 3017877 tool to auto format r code 但未与RStudio连接 还
  • R 代码编程:在堆叠排序表上先向下填充缺失列值,然后向上填充

    我有一个包含 3 列的数据框 但第三列有一些缺失值 需要用以下逻辑填充 期望的结果是第三列 部分 上没有缺失值 要填充它 我们必须找到第一个 周 其中为该特定 项目 第一列 填充了 部分 值 并且然后通过向下复制 part 来填充它 直到找
  • 基于 R 中多个现有列的计算的新列

    R df orginal 中的原始数据框 AB CD EF GH A 0 12 M A 0 13 F A 0 14 F A 1 16 M A 1 17 F A 1 18 M A 1 18 M A 2 0 78 M A 2 0 12 M A
  • ggplot2:使用 geom_bar 绘制平均值

    我有以下数据框 test2 lt data frame groups c rep group1 4 rep group2 4 X2 c rnorm 4 rnorm 4 label c rep 1 2 rep 2 2 rep 1 2 rep
  • 如何引用基于 data.frame 中的变量的列表?

    我有一张简单的桌子emp id and job code 我想返回正确的payout基于job code 我已经用嵌套的 ifelse 来解决这个问题 但是如果我有更多怎么办job code s library dplyr set seed
  • 在 R 中创建多维 NetCDF

    我正在尝试使用 R 包创建多维 NetCDF 文件ncdf http cran r project org web packages ncdf index html 我正在对一组 1500 个点进行气候日常观测 每个点的观测数量约为 182
  • R 代码迭代

    我的目标是在 R 中使用生成这个向量iter 0 1 1 1 2 3 3 3 6 6 4 10 我尝试了下面的代码 但它没有给我正确的数字 iter lt 4 w vector lt rep 0 iter for i in 1 iter w
  • RStudio/ R 上的 Tensorflow 设置 |中央操作系统

    在过去的 5 天里 我试图让 Keras Tensorflow 包在 R 中工作 我使用 RStudio 进行安装并使用conda miniconda virtualenv但最后每次都会崩溃 安装库不应该是一场噩梦 尤其是当我们谈论 R 时
  • R 中的波形符(~) 运算符

    根据 R 文档 运算符在公式中用于分隔公式的右侧和左侧 右侧是自变量 左侧是因变量 我了解 lm 包中何时使用 然而以下是什么意思呢 x 1 右边是1 什么意思 可以是除 1 之外的任何其他数字吗 From lm 拟合线性模型时 y x 1
  • 使用 sf 与多多边形几何体进行分组(使用 R)

    我有一个放在一起的自定义形状文件 当我一次绘制所有内容时 效果很好 但我想按某些变量进行分组来绘制特定形状的区域 例如 county region sales washoe 1 5 carson city 1 10 clark 2 15 h
  • RQuantLib 的安装

    我尝试从 RStudio 安装 RQuantLib 但它给我带来了问题 我将 R 版本更新到 3 3 1 并尝试使用安装包的常用方法 install packages RQuantLib 按照作者网页上的推荐 http dirk eddel
  • 从字符串列表中,识别哪些是人名,哪些不是

    我有一个如下所示的向量 想确定列表中的哪些元素是人名 哪些不是 我找到了 humaniformat 包 它可以格式化名称 但不幸的是它无法确定字符串是否实际上是名称 我还发现了一些用于实体提取的包 但它们似乎需要实际文本来进行词性标记 而不
  • 将 geom_text 与 ggplot2 中的 geom_vline 对齐

    I used vjust作为解决方法并详细阐述 通过尝试和错误可以接受的距离 但这有时非常耗时且变化 与字体大小和轴比例 有没有更好的方法来自动对齐示例中的文本 library ggplot2 ggplot data mtcars aes
  • ggplot2:将条形图中的条形从最高到最低重新排序[重复]

    这个问题在这里已经有答案了 我得到了这个数字 以下的回答类似的问题 https stackoverflow com questions 5967593 ordering of bars in ggplot library ggplot2 l
  • R:使用字符串作为参数来改变 dplyr 中的动词

    我正在构建一个闪亮的应用程序 它需要允许用户定义新的绘图变量 具体来说 我想允许用户定义要在 mutate 动词中使用的表达式 服务器接收文本形式的表达式 我想知道如何让 mutate 在 dplyr 0 7 中执行它 我可以使用 muta
  • R 中逻辑回归建模的子集化

    在 R 中的逻辑回归过程中分割和子集数据时 我收到以下错误消息 我陷入了 子集 步骤 library caTools split lt sample split df1 SplitRatio 0 5 split training lt su
  • 按行和列重叠合并 2 个数据框

    我想加法合并 2 个数据框 这样 taxonomy A B C 1 rat 0 1 2 2 dog 1 2 3 3 cat 2 3 0 and taxonomy A D C 1 rat 0 1 9 2 Horse 0 2 6 3 cat 2

随机推荐