关于提取行的随机子集的this问题。
我的数据如下:
scenario urban_areas_simple place population
North Primary Urban Areas Leeds 700,000
South Primary Urban Areas London 9,000,000
Scotland Rural Shetland 22,000
... ... ...
使用dplyr我有以下代码,根据我的scenario
和urban_areas_simple
列中的条件,可以使用并随机选择4行:
filter(lads,
scenario == "north" & urban_areas_simple == "Primary Urban Areas") %>%
sample_n(4)
但是,我也想随机选择所选择的行数,因为这里我只选择了4个作为例子。
对于随机大小的子集,我如何随机选择满足这些条件的行?
注意:每个条件可能只有10-50行。
答案 0 :(得分:1)
您可以使用sample(1:100, size = 1)
而不是4。这将选择1到100之间的随机数。如果要使过程可重现,请在开始使用依赖于随机种子的任何函数之前粘贴set.seed(x)
。 x
是任何整数。
答案 1 :(得分:0)
filter(lads,
scenario == "north" & urban_areas_simple == "Primary Urban Areas") %>%
sample_frac(runif(1))
就是这样。
该值保证可以退回,并且可以处理具有不相等组大小的分组数据帧的分层抽样。