使用dplyr::slice_sample()时by参数失效问题求助
问题原因与解决方案
你遇到的错误是因为dplyr 1.0.10版本的slice_sample()函数并不支持by或.by参数,这个按组抽样的参数是在dplyr 1.1.0版本才新增的功能,旧版本无法识别该参数,因此会抛出... must be empty的错误。
解决办法
方法1:升级dplyr版本
将dplyr升级到1.1.0及以上版本后,你原本的代码就能正常运行:
x %>% slice_sample(n=1, by = year_, replace = TRUE)
方法2:用group_by()替代(无需升级)
如果暂时不想升级版本,可以通过group_by()按year_分组后再抽样,实现相同效果:
x %>% group_by(year_) %>% slice_sample(n=1, replace = TRUE) %>% ungroup()
这段代码会先按year_分组,每组抽取1个样本,最后取消分组,结果和使用by参数的效果一致。
内容的提问来源于stack exchange,提问作者blnk55
相关产品推荐
相关产品推荐

