使用数组:批量替换temp数据集中字符字段中的 ‘dd’ 为'xx';并对字符缺失值用'xxxx'填充。
1、例子:temp需要替换的数据集
data work.temp;
input a$9. b$9. c;
cards;
abcdedda eeffaass 123
yy789vad ccddeeww 456
yyddmmdd aabbccdd 7
tc123456 tcdeeeew 20
;
run;

2、替换代码(图为替换结果)
data work.temp2;
set work.temp;
array char _char_;
do over char;
if char ne '' then char=tranwrd(char,'dd','xx');
else if missing(char)='xxxx';
end;
run;

/***2、test 数据集中:当a=1 时 替换 b1,b2中的值为'-8888',当a=2,如果b1,b2为空 用'-9999'填充 **/
data work.test;
input a a2$9. b1$9. b2$12.;
cards;
1 abcdedda eeffaass ttddffgg
1 yy789vad ccddeeww -99999
2 yyddmmdd aabbccdd -8jjjjj
3 tc123456 tcdeeeew -99ffdd
;
run;

data work.test2;
set work.test;
array char b:;
do i=1 to dim(char);
if a=1 and ^missing(char[i]) then char[i] = '-8888';
else if a=2 and missing(char[i]) then char[i]='-9999' ;
end;
drop i;
run;

本文介绍如何在SAS中使用数组批量替换字符字段的值。通过示例展示如何将temp数据集中所有字符字段的'dd'替换为'xx',并将缺失值填充为'xxxx'。此外,还展示了在test数据集中,根据条件(a=1时)替换b1和b2字段的值,以及在a=2且字段为空时填充'-9999'的操作。

6136

被折叠的 条评论
为什么被折叠?



