楼主: yijingqi2
1998 4

[问答] 如何用sas将数据拆分 [推广有奖]

  • 0关注
  • 0粉丝

高中生

32%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
124 点
帖子
13
精华
0
在线时间
30 小时
注册时间
2013-11-5
最后登录
2014-5-14

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
1 A M F0 SL 2,11,14
2 A M F0 AL 5,5,13,20,22
3 A M F1 SL 6,6,15
4 A M F1 AL 7,14
5 A M F2 SL 6,32,53,57
6 A M F2 AL 14,16,16,17,40,43,46
7 A M F3 SL 12,15
8 A M F3 AL 8,23,23,28,34,36,38
9 A F F0 SL 3
10 A F F0 AL 5,11,24,45
11 A F F1 SL 5,6,6,9,13,23,25,32,53,54
12 A F F1 AL 5,5,11,17,19
13 A F F2 SL 8,13,14,20,47,48,60,81
14 A F F2 AL 2
15 A F F3 SL 5,9,7
16 A F F3 AL 0,2,3,5,10,14,21,36,40
17 N M F0 SL 6,17,67
18 N M F0 AL 0,0,2,7,11,12
19 N M F1 SL 0,0,5,5,5,11,17
20 N M F1 AL 3,3
21 N M F2 SL 22,30,36
22 N M F2 AL 8,0,1,5,7,16,27
23 N M F3 SL 12,15
24 N M F3 AL 0,30,10,14,27,41,69
25 N F F0 SL 25
26 N F F0 AL 10,11,20,33
27 N F F1 SL 5,7,0,1,5,5,5,5,7,11,15
28 N F F1 AL 5,14,6,6,7,28
29 N F F2 SL 0,5,14,2,2,3,8,10,12
30 N F F2 AL 1
31 N F F3 SL 8
32 N F F3 AL 1,9,22,3,3,5,15,18,22,37
我想把最后一列数据拆分开,即第一行拆分成
A M F0 SL 2
A M F0 SL 11
A M F0 SL 14
下面的数据进行同样处理,在sas中应该怎么处理?谢谢


二维码

扫码加我 拉你入群

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

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

关键词:如何用 怎么处理 如何

回帖推荐

pobel 发表于4楼  查看完整内容

data test; input obs str & $100.; n=count(str,",")+1; string=scan(str,1,","); output; do i=2 to n; string=tranwrd(string,scan(string,-1),scan(str,i,",")); output; end; keep obs str string; cards; 1 A M F0 SL 2,11,14 2 A M F0 AL 5,5,13,20,22 3 A M F1 SL 6,6,15 4 A M F1 AL 7,14 5 A M F2 SL 6,32,53,57 6 A M F2 AL 14,16,16,17,40,43,46 ;
沙发
ourfather 发表于 2013-11-7 13:23:49 |只看作者 |坛友微信交流群
01955 /*以下是字符函数*/
01956 c1=index(x6,x7);
01957 c2=substr(x6,3,3);
01958 c3=scan(x8,2);
01959 c4=upcase(x8);
01960 c5=compress(x6,x7);

SAS数据统计分析师认证培训班上,丁老师教的方法,你可以关注一下:
https://bbs.pinggu.org/thread-1818238-1-1.html

使用道具

藤椅
龙潭丰乐 学生认证  发表于 2013-11-7 16:39:55 |只看作者 |坛友微信交流群
  1. data quan1;
  2.   length string $ 2;
  3.     set quan;   
  4.       i=1;
  5.    do until (string ="");
  6.      string=scan(number,i,',');       
  7.     output;
  8.      i+1;
  9.    end;       
  10.    drop i number;
  11. run;
  12. data quan1;
  13. set quan1;
  14.   if string="" then delete;
  15. run;
复制代码

使用道具

板凳
pobel 在职认证  发表于 2013-11-7 16:58:57 |只看作者 |坛友微信交流群
data test;
   input obs str & $100.;
   n=count(str,",")+1;
   string=scan(str,1,",");
   output;
   do i=2 to n;
      string=tranwrd(string,scan(string,-1),scan(str,i,","));
          output;
        end;
        keep obs str string;
   cards;
1 A M F0 SL 2,11,14
2 A M F0 AL 5,5,13,20,22
3 A M F1 SL 6,6,15
4 A M F1 AL 7,14
5 A M F2 SL 6,32,53,57
6 A M F2 AL 14,16,16,17,40,43,46
;
和谐拯救危机

使用道具

报纸
yijingqi2 发表于 2013-11-7 18:15:27 |只看作者 |坛友微信交流群
pobel 发表于 2013-11-7 16:58
data test;
   input obs str & $100.;
   n=count(str,",")+1;
真的可以的啊,要多向各位大神学习,谢谢了

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-6 04:40