Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting SAS:如何按字母顺序对变量中的单词进行排序?_Sorting_Sas - Fatal编程技术网

Sorting SAS:如何按字母顺序对变量中的单词进行排序?

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;

我想要以下内容:

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=“,”; 输入字符串_; 数据线; 响尾蛇蜜獾 狮子鹰鲨鱼大猩猩 鼠猿马 ; 跑 数据分类; 设置动物; /*奇迹发生了*/ 把绳子放进去; 跑 输出: 串入:蜜獾响尾蛇 小鹰大猩猩狮子鲨 串入:猿马鼠
你必须在这里输入什么魔法?

我不知道有什么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删除,我现在看到了!我错过了:)