Sorting SAS:如何按字母顺序对变量中的单词进行排序?
我想要以下内容: data animals; length string_in $50; infile datalines dlm=","; input string_in; datalines; rattlesnake honeybadger lion eagle shark gorilla mouse ape horse ; run; data animals_sorted; set animals; /* magic happens*/ put string_in; run; Output: string_in: honeybadger rattlesnake string_in: eagle gorilla lion shark string_in: ape horse mouse 数据动物; 长度字符串_,单位为50美元; 填充数据线dlm=“,”; 输入字符串_; 数据线; 响尾蛇蜜獾 狮子鹰鲨鱼大猩猩 鼠猿马 ; 跑 数据分类; 设置动物; /*奇迹发生了*/ 把绳子放进去; 跑 输出: 串入:蜜獾响尾蛇 小鹰大猩猩狮子鲨 串入:猿马鼠Sorting SAS:如何按字母顺序对变量中的单词进行排序?,sorting,sas,Sorting,Sas,我想要以下内容: data animals; length string_in $50; infile datalines dlm=","; input string_in; datalines; rattlesnake honeybadger lion eagle shark gorilla mouse ape horse ; run; data animals_sorted;
你必须在这里输入什么魔法?我不知道有什么SAS函数可以对字符串中的单词进行排序,但SAS可以对数组中变量的值进行排序
data animals;
length string_in $50;
infile datalines dlm=",";
input string_in;
datalines;
rattlesnake honeybadger
lion eagle shark gorilla
mouse ape horse
;;;;
run;
data animals_sorted;
set animals;
array animals[10] $32 _temporary_;
call missing(of animals[*]);
do i = 1 to dim(animals) until(p eq 0);
call scan(string_in,i,p,l);
animals[i] = substrn(string_in,p,l);
end;
call sortc(of animals[*]);
length string_out $50;
string_out = catx(' ',of animals[*]);
drop i p l;
run;
proc print;
run;
我不知道有任何SAS函数可以对字符串中的单词进行排序,但SAS可以对数组中变量的值进行排序
data animals;
length string_in $50;
infile datalines dlm=",";
input string_in;
datalines;
rattlesnake honeybadger
lion eagle shark gorilla
mouse ape horse
;;;;
run;
data animals_sorted;
set animals;
array animals[10] $32 _temporary_;
call missing(of animals[*]);
do i = 1 to dim(animals) until(p eq 0);
call scan(string_in,i,p,l);
animals[i] = substrn(string_in,p,l);
end;
call sortc(of animals[*]);
length string_out $50;
string_out = catx(' ',of animals[*]);
drop i p l;
run;
proc print;
run;
您可以使用
sortc
例程进一步简化它。不过我运气不太好;如果数组太大,我会一直得到空格。@StuSztukowski我正在使用SORTC(动物[*])。它首先排序空白数组元素,但是任何额外的空间都被CasxOH删除,我现在看到了!我错过了:)您可以使用sortc
例程进一步简化它。不过我运气不太好;如果数组太大,我会一直得到空格。@StuSztukowski我正在使用SORTC(动物[*])。它首先排序空白数组元素,但是任何额外的空间都被CasxOH删除,我现在看到了!我错过了:)