【问题标题】:Sampling on conditions within another column对另一列中的条件进行抽样
【发布时间】:2019-02-27 04:33:40
【问题描述】:

如何随机抽取 2 个权重在 0.5 - 1.0 之间的报告

还有;如何随机抽取 20% 权重在 0.5 - 1.0 之间的报告

DF <- data.frame(Report_ID=c(2,8,12,15,16, 51,67,89,88,98),
                        Weight=c(0.05,0.1,0.25,0.30,0.35,0.56,0.75,0.81,0.95,1.0))

【问题讨论】:

  • 你试过什么?这似乎很简单。你在哪里挂机?您是否在 SO 或 google 上进行过任何搜索?

标签: r random


【解决方案1】:

使用dplyr

library(dplyr)

示例 2 报告:

DF %>% 
  filter(between(Weight, 0.5, 1)) %>% 
  sample_n(2)

20% 的报告样本:

DF %>% 
  filter(between(Weight, 0.5, 1)) %>% 
  sample_frac(0.5)

【讨论】:

    【解决方案2】:

    你可以试试这个:

    rand_sample <- DF[ sample( which(DF$Weight > 0.4 & DF$Weight < 1.1), round(0.2*length(which(DF$Weight > 0.4 & DF$Weight < 1.1)))), ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 2020-05-22
      • 2021-09-09
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多