在 tibble R 的截止范围内随机采样
Sample randomly within cutoff in tibble R
我在 R 中有 100 分,如下:
preds <- tibble(x=1:100, y=seq(from=0.01,to=1,by=0.01))
我想随机抽取 20 个值小于 0.5 的观测值。目前,我可以通过以下方式 select 前 20 个观察结果:
number_of_likely_negatives<-20
likely_negatives <- preds %>%
arrange(y) %>%
slice(1:number_of_likely_negatives)
但是我如何随机 select 20 个 y 值低于 0.5 的观测值?
我们可能 filter
在 slice
ing
之前的 'y' 值
likely_negatives <- preds %>%
arrange(y) %>%
filter(y < 0.5) %>%
slice(sample(seq(number_of_likely_negatives), 20, replace = FALSE))
我们也可以用slice_sample
preds %>%
arrange(y) %>%
filter(y < 0.5) %>%
slice_sample(n = number_of_likely_negatives)
直接回答:
preds %>%
slice(
sample.int(which(y>threshold)[1], size = number_of_likely_negatives, replace = TRUE)
)
您可以使用以下代码:
library(dplyr)
sample_n(preds[preds$y < 0.5,], 20)
输出:
# A tibble: 20 × 2
x y
<int> <dbl>
1 42 0.42
2 18 0.18
3 44 0.44
4 17 0.17
5 7 0.07
6 38 0.38
7 23 0.23
8 27 0.27
9 20 0.2
10 6 0.06
11 35 0.35
12 11 0.11
13 9 0.09
14 34 0.34
15 30 0.3
16 29 0.29
17 39 0.39
18 3 0.03
19 13 0.13
20 47 0.47
我在 R 中有 100 分,如下:
preds <- tibble(x=1:100, y=seq(from=0.01,to=1,by=0.01))
我想随机抽取 20 个值小于 0.5 的观测值。目前,我可以通过以下方式 select 前 20 个观察结果:
number_of_likely_negatives<-20
likely_negatives <- preds %>%
arrange(y) %>%
slice(1:number_of_likely_negatives)
但是我如何随机 select 20 个 y 值低于 0.5 的观测值?
我们可能 filter
在 slice
ing
likely_negatives <- preds %>%
arrange(y) %>%
filter(y < 0.5) %>%
slice(sample(seq(number_of_likely_negatives), 20, replace = FALSE))
我们也可以用slice_sample
preds %>%
arrange(y) %>%
filter(y < 0.5) %>%
slice_sample(n = number_of_likely_negatives)
直接回答:
preds %>%
slice(
sample.int(which(y>threshold)[1], size = number_of_likely_negatives, replace = TRUE)
)
您可以使用以下代码:
library(dplyr)
sample_n(preds[preds$y < 0.5,], 20)
输出:
# A tibble: 20 × 2
x y
<int> <dbl>
1 42 0.42
2 18 0.18
3 44 0.44
4 17 0.17
5 7 0.07
6 38 0.38
7 23 0.23
8 27 0.27
9 20 0.2
10 6 0.06
11 35 0.35
12 11 0.11
13 9 0.09
14 34 0.34
15 30 0.3
16 29 0.29
17 39 0.39
18 3 0.03
19 13 0.13
20 47 0.47