Выборка по условиям в другой колонке - PullRequest
0 голосов
/ 27 февраля 2019

Как можно случайно выбрать 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))

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Вы можете попробовать это:

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)))), ]
0 голосов
/ 27 февраля 2019

Использование 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)
...