按照值的组抽取dplyr样本

3

我希望你能够使用dplyr基于分组值制作样本:

我尝试过的方法:

 id <- c(1, 1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 6, 7, 8, 8, 8, 8, 8)

 id <-  as.data.frame(id)

 sample <- id %>%
   group_by(id) %>%
   sample_n(2, replace = FALSE) %>%
   ungroup(id)

sample

预期结果(n样本=2):

1, 1, 1, 2

或者

1, 1, 1, 3, 3

或者

5, 5, 5, 6, 6

etc.

I have got an error:

Error: `size` must be less or equal than 1 (size of data), set `replace` = TRUE to use sampling with replacement

如果您按'id'分组,则存在少于2行的元素。 - akrun
我想根据ID制作样本。 “样本”是指对应于2种类型的ID的行:例如:5和6(5、5、5、6、6)。 - Wilcar
1个回答

3
也许这可以帮助你。
id %>% 
  distinct(id) %>% 
  sample_n(2, replace = FALSE) %>% 
  inner_join(id, .)

1
distinct / inner_join 很聪明 - Wilcar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接