我试图弄清楚如何随机采样与组变量匹配的 ID,但具体是通过加权每个分组变量来随机采样。例如,采用以下数据:
我想将 A 组的权重设为 60%,B 组的权重设为 20%,C 组的权重设为 15%,D 组的权重设为 5%,然后根据这些权重随机抽取 10 个 ID,不重复,将这些 ID 返回到另一个中专栏。
希望这是有道理的,并提前感谢您的帮助!
我已经大致了解了随机抽样的方法,但正在努力解决加权问题,而不是对重复样本进行抽样。
您可以使用以下内容:
=LET(a,{"A";"B";"C";"D"},
b,{60;20;15;5},
c,TOCOL(IFS(SEQUENCE(,SUM(b))<=LOOKUP(B2:B25,HSTACK(a,b)),A2:A25),2),
TAKE(SORTBY(c,RANDARRAY(ROWS(c))),10))
它首先声明
a
是您的组,并且它的权重 b
。
c
在数组 a
中查找 B 列中的值并返回其权重 b
。如果返回值小于或等于b
之和的序列,则返回A列的值,否则返回错误。这会导致 A 列的值重复 b
中提到的次数,其中 B 列中的值与 a
的值匹配。
TOCOL 消除了错误并使所有值成为一列数组。
这是随机排序的,并取前 10 个值。