【发布时间】:2021-03-28 07:51:34
【问题描述】:
我正在尝试从分布在 80 种科学期刊中的总共 6173 篇文章中进行随机抽样。
如果所有期刊都包含在分析中会很有趣,但是,每个期刊的文章数量差异很大,纯随机过程可能不会包括所有期刊。因此,建议在每个期刊中包含 10% 的文章是一个不错的选择。
为了实现这一点,我使用了下面的代码。然而,由于非整数,每篇文章只有一篇文章的期刊被忽略,因为输出低于 0.5 并四舍五入为零。
为了保持样本尽可能少,我想只对 0 到 1 之间的值应用上限函数,其余值使用标准舍入函数更好。
这个问题可以通过手动搜索缺失的文章和对应的期刊来部分解决,但这对学习技能没有任何帮助,也确实不是一个好的解决方案。
如果考虑到所使用的代码,我将非常感谢任何建议,但如果这个问题看起来太微不足道,我深表歉意。
library(dplyr)
journal <- dataset %>% dplyr::group_by(Journal) %>% dplyr::summarise(n = 0.1 * n())
sample <- function(journal, frac)
{
if(journal < 1)
{sample_n(journal, ceiling({{frac}} * n()) )}
else
{sample_n(journal, round({{frac}} * n()) )}
}
dataset_randomised <- dataset %>% sample(0.1)
print(dataset_randomised)
【问题讨论】: