我正在寻找一种有效的方法来将m个不同的数字(1到m)分配给n个b(m>> n)。
假设m = 20,n = 3,我需要的是$ awk '{ORS=(NR%3?FS:RS); print $1} END{if (NR%3) printf "%s", RS}' file | column -t
apropos awk chsh
date grep i3
ip6tables
或1, 3, 5
。它看起来像没有替换m号的采样。
目前,我使用19, 15, 2
来汇总proc surveyselect
行中的n
行,然后对其进行转置。但是,如何快速生成m
个样本呢?最终输出应该是(给定k
,样本大小为m=20,n=3
)
k=4
有没有办法避免在输出样本中生成重复项?
答案 0 :(得分:1)
如果你不想复制,你似乎要求从m组成n个k的样本到n个k组。
%let m=20;
%let n=3;
%let k=4;
proc plan;
factors m=%eval(&n*&k) of &m random n=1 of &n cyclic;
output out=sample;
quit;
data sampleV / view=sampleV;
set sample;
if n eq 1 then k+1;
run;
proc transpose data=sampleV out=sample2(drop=_:) prefix=n;
by k;
var m;
id n;
run;