首页 > 解决方案 > 关于 sample_n() 的错误“sizemust be less or equal than 2 (size of data), setreplace` = TRUE to use sampling with replacement”

问题描述

当我尝试

  %>%group_by(id)%>%nest() %>%
     sample_n(10,replace = F)%>%unnest()

这有时有效,但偶尔会给出一条消息“size must be less or equal than 2 (size of data), setreplace` = TRUE to use sampling with replacement”。

为什么??

标签: rdplyr

解决方案


这最常发生,因为您在某些组中的行数少于n(在这种情况下,错误消息告诉您某些组只有 2 行)。

解决方法是使用新函数slice_sample(),该函数旨在取代 sample_n() 和 sample_prop()。

slice_sample(n=10, replace = F)与您的代码做同样的事情,除了如果一个组只有 2 行,它会为该组返回 2 行,而不是因为错误而失败。


推荐阅读