全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4940 12
2012-02-17
我有一个数据集,里面有一个变量如下:

0122116666
021122
03552211

变量长度不一,从2到30不等,但长度都是偶数。
我想每两个字符间插入一个逗号,使得最后变量如下:

01,22,11,66,66
02,11,22
03,55,22,11

以上虽用逗号分隔,但是仍然算作一个变量。请问应当如何实现?先谢了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-2-17 08:30:40
U can use the following code.

data test01;
        format var $20.;
        input var $;
cards;
0122116666
021122
03552211
;run;
data test02(drop = n ii);
        format new_var $20.;
        set test01;
        n = length(var)/2;
        new_var = substr(var,1,2);
        do ii= 2 to n;
                new_var = compress(new_var||','||substr(var,ii*2-1,2));
        end;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-17 23:33:00
maidenhan 发表于 2012-2-17 08:30
U can use the following code.

data test01;
能不能解释下compress函数功能,谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-18 05:18:49
sl122113 发表于 2012-2-17 23:33
能不能解释下compress函数功能,谢谢!
compress就是把变量中的指定字符去掉,默认是空格
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-18 08:40:22
jinlin2009 发表于 2012-2-18 05:18
compress就是把变量中的指定字符去掉,默认是空格
多谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-2-19 10:49:28
The good part of SAS is that it provides many solutions. Here is a way to leverage a SAS format.


proc format lib=work;
  picture num2c
      low - high = '00,00,00,00,00,09'
      ;
quit;

data tmp;
   do x=11111111,11002255,123456789012;
   y=put(x, num2c.);
   output;
   end;
run;

proc print;run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群