如果第一个数据是字符,我想使用“ if〜else if”函数执行一些指令,如果它们是数字,则执行其他指令

时间:2019-03-27 06:02:35

标签: sas

在SAS中,如果第一个数据是字符,我想使用'if〜else if'函数执行一些指令,如果它们是数字,则要执行其他指令。

我试图使用'if〜else if'语句,但是我不知道如何指定条件语句。


在此代码中,

data pr1;
input ~~~~
put profname$ course;
cards;
LEE 22
15 PARK
;
run;

我想展示这个。

profname course
 LEE    22  
 PARK    15

我可以在'~~~'??中放入什么?

1 个答案:

答案 0 :(得分:1)

您可以在此处执行一些巧妙的INPUT语句魔术,但是我认为最简单,最清晰的解决方案是将两列都读取为字符数据,然后对其进行测试以查看哪一列包含哪些数据:

data pr1 (keep = profname course);

  * Declare PROFNAME as character and COURSE as numeric;
  length profname $ 20 course 8;

  * Read in two columns of data;
  input col1 $ col2 $

  if input(col1, ??best.) = . then do;
    * If COL1 cannot be converted to a number, assume it is a name;
    profname = col1;
    course = input(col2, ??best.);
  end; else do;
    * Otherwise assume COL2 is the name;
    profname = col2;
    course = input(col1, ??best.);
  end;

  cards;
LEE 22
15 PARK
  ;
run;

??函数中的INPUT()修饰符会在无法处理某个值时抑制通常的警告。