将一个字符串拆分为多行 (SAS)

可丽饼

我正在尝试在 SAS 中执行以下操作。

我有一个这样的数据集:

| F2                                  | F3     | PERIOD   |
___________________________________________________________
| Text1(1001) Text2(1002) Text3(1003) |        | 10-02-03 |
| Text4                               | 1004   | 10-02-08 |
| Text5(1005) Text6(1006)             |        | 10-02-12 |
| Text7                               | 1007   | 10-03-01 |

如果有多个值,我想要做的是拆分 F2 列。所以数据集看起来像这样:

| F2                                  | F3     | Period   |
___________________________________________________________
| Text1                               | 1001   | 10-02-03 |
| Text2                               | 1002   | 10-02-03 |
| Text3                               | 1003   | 10-02-03 |
| Text4                               | 1004   | 10-02-08 |
| Text5                               | 1005   | 10-02-12 |
| Text6                               | 1006   | 10-02-12 |
| Text7                               | 1007   | 10-03-01 |

因此括号中的值以 F3 列结尾,而 PERIOD 列保持不变。

我希望有人可以提供帮助。

弗朗西斯科·内梅西

第一个数据步骤模拟输入的前两行,第二个执行您需要的操作。

干杯,弗朗切斯科

data in;
 length f2 $64
        f3 $4
        period $8;
 f2="Text1(1001) Text2(1002) Text3(1003)";
 period="10-02-03";
 output;
 f2="Text4";
 f3="1004";
 period="10-02-08";
 output;
run;

data out;
 length outF2 $16;
 set in;

 noOfBlanks = countc(strip(f2),' ');

 if noOfBlanks then do i=1 to noOfBlanks+1;
    outF2=scan(f2,i," ");
    f3 = prxchange("s/.*\(|\)//",-1,outF2);
    outF2 = prxchange("s/\(.*\)//",-1,outF2);
    output;
 end;
 else do;
    outF2=f2;
    output;
 end;

 drop f2 noOfBlanks i;
 rename outF2 = f2;

run;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

将一个字符串在 r 中的多个分隔符处拆分为多行

将一个字符串拆分为两个字符串

将一个字符串拆分为多个列表

每n个单词将一个字符串拆分为较小的字符串

给定一个字符串s,将字符串拆分为令牌

将一个数字拆分为一个字符串数组

在SAS中用另一个字符替换连续嵌入的空白

如何将字符串拆分为第一个字符和其余字符?

如何将一个字符串拆分为几个可能的字符?

根据sas中另一个字符变量的值重新编码一个字符变量中的值

根据第一个字符串将行拆分为键/值对

Swift:如何将一个字符串数组拆分为多个匹配值数组?

如何将一个字符串拆分为一个长度为3的字符串列表?

每n个字符将字符串拆分为一个新列

如何将一个字符串的项目拆分为两个,其中一个包含以'-D'开头的项目?

随附的Clojure库中是否存在将字符串拆分为另一个字符串的功能?

使用SQL将子字符串长度可变的单元格中的一个字符串拆分为几个不同的列

将多行作为一个字符串填充字典

将多行的选定列合并为一个字符串

MySQL多行与将值全部存储在一个字符串中

如何将一个字符串分成多行单个字符

如何在 TypeScript 中将一个字符串拆分为两个变量?

Javascript按另一个字符串拆分字符串并包含用于将其拆分为结果的另一个字符串

C:将一个字符串拆分为两个字符串,并返回一个2元素数组

将字符串拆分为空白列表,当下一个字符不是破折号时不包括单个空格

如何将一个字符串拆分为4个字符的子字符串,然后用连字符连接它们?

如何在bash shell中将一个字符串拆分为多个变量?

使用 awk 或 sed 将管道分隔值拆分为新行,保持第一个字符串相同