【问题标题】:SAS: How to sort words within a variable in alphabetic order?SAS:如何按字母顺序对变量中的单词进行排序?
【发布时间】:2016-02-29 15:30:00
【问题描述】:

我想要以下:

数据动物; 长度 string_in $50; infile 数据线 dlm=","; 输入字符串_in; 数据线; 响尾蛇蜜獾 狮鹰鲨大猩猩 鼠猿马 ; 跑; 数据动物_排序; 设置动物; /*魔术发生*/ 输入字符串; 跑; 输出: string_in: 蜜獾响尾蛇 string_in:鹰大猩猩狮子鲨 string_in: 猿马老鼠

你要在这里输入什么样的魔法?

【问题讨论】:

    标签: sorting sas


    【解决方案1】:

    我不知道任何 SAS 函数可以对字符串中的单词进行排序,但 SAS 可以对 ARRAY 中的变量值进行排序。

    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(动物 [*])。它确实首先对空白数组元素进行排序,但 CATX 会删除任何多余的空格
    • 哦,我现在看到了!我错过了:)
    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 2011-08-29
    • 2010-11-23
    • 1970-01-01
    相关资源
    最近更新 更多