c********g 发帖数: 193 | 1 我要生成一个8个字符变量,每一个字符从A-Z随机取值,一共会有26^8个值,如果用do
loop的话,太费资源了,有什么简单的办法吗? |
k*******a 发帖数: 772 | 2 create a data with A - Z, total 26 obs
use proc surveyselect do simple random sampleing with replacement 8*N
samples
every 8 samples combined as one string |
c********g 发帖数: 193 | 3 谢谢
不过还是没有弄太清楚,能再说说吗?
DATA TEMP1;
input x $1;
cards;
A
.
.
Z
;
run;
proc surveyselect data=temp1
methods=urs sampsize=26 rep=8
out=temp2;
run;
【在 k*******a 的大作中提到】 : create a data with A - Z, total 26 obs : use proc surveyselect do simple random sampleing with replacement 8*N : samples : every 8 samples combined as one string
|
k*******a 发帖数: 772 | 4 try this method:
data a;
length char $8;
do i = 1 to 100;
char = '';
do j = 1 to 8;
sample = substr('ABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil(ranuni(0)*26), 1);
char = strip(char) || sample;
end;
output;
end;
drop i j sample;
run;
【在 c********g 的大作中提到】 : 谢谢 : 不过还是没有弄太清楚,能再说说吗? : DATA TEMP1; : input x $1; : cards; : A : . : . : Z : ;
|
c********g 发帖数: 193 | |
j*****g 发帖数: 36 | 6 data temp(drop=index i);
array letters{26} $ _temporary_ ('A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' '
K' 'L' 'M' 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z');
attrib word length=$8;
do i = 1 to 8;
index = ceil(ranuni(0)*26);
word= catt(word, letters{index});
put index= word=;
end;
run; |
s******r 发帖数: 1524 | 7 data ttt;
length str $8.;
do i=1 to 100;
str="";
do j=1 to 8;
str=cats(str,byte(rand("uniform")*26+65) );
end;
output;
end;
drop i j;
run;
do
【在 c********g 的大作中提到】 : 我要生成一个8个字符变量,每一个字符从A-Z随机取值,一共会有26^8个值,如果用do : loop的话,太费资源了,有什么简单的办法吗?
|
c********g 发帖数: 193 | |