将具有匹配索引的两个字符串拆分为SAS

时间:2017-11-28 20:31:28

标签: arrays sas

我已将一些SQL数据导入SAS,并试图找出如何使用数据语句将具有匹配索引的两个字符串拆分为多行。我在这里看到了几个如何使用一个字符串一次执行此操作的示例,但不是两个并行字符串。我的问题的一个例子如下:

HAVE

ID   TIME_ARRAY           RESPONSE_ARRAY
1    15:23,13:00,12:02    3,4,2
2    17:03,11:07,19:05    1,2,3
3    15:59,10:34,12:12    4,1,2

WANT

ID   TIME    RESPONSE
1    15:23   3
1    13:00   4
1    12:02   2
2    17:03   1
2    11:07   2
2    19:05   3
3    15:59   4
3    10:34   1
3    12:12   2

如您所见,TIME_ARRAY中元素的索引与RESPONSE_ARRAY中元素的索引相匹配。

道歉,如果问题不清楚,我仍然是这类事情的菜鸟。

非常感谢任何帮助!

干杯,

肖恩

1 个答案:

答案 0 :(得分:1)

多字符串解决方案与一个字符串解决方案并不特别不同。只需要一个循环,然后使用相同的数组指示器将其切断。

data want;
  set have;
  do _i = 1 to countw(time_array,',');
    time = scan(time_array,_i,',');
    response = scan(response_array,_i,',');
    output;
  end;
  keep id time response;
run;