楼主: wodematlab
1814 1

scan函数的应用问题 [推广有奖]

  • 6关注
  • 7粉丝

已卖:703份资源

教授

2%

还不是VIP/贵宾

-

威望
0
论坛币
1910 个
通用积分
14.0137
学术水平
12 点
热心指数
19 点
信用等级
10 点
经验
10670 点
帖子
1063
精华
0
在线时间
972 小时
注册时间
2008-4-19
最后登录
2024-7-11

楼主
wodematlab 发表于 2016-7-15 15:23:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现在有一列数据为:
{“var1”:"234","brand":"OMG","motor":""}
{“var1”:"321","brand":"YS","motor":"123"}

如何变成
var1 brand motor
234 OMG  空
321 YS   123

空的意思那个值为空

有大神可以解决嘛,谢谢啦
二维码

扫码加我 拉你入群

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

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

关键词:scan 应用问题 brand Motor MOTO motor 如何

沙发
wwang111 发表于 2016-7-15 20:42:11
  1. data test;
  2. input text : $200.;
  3. cards;
  4. {"var1":"234","brand":"OMG","motor":""}
  5. {"var1":"321","brand":"YS","motor":"123"}
  6. ;

  7. data _null_;
  8. set test end=last;
  9.   num=count(text,":")*2;
  10.   if last then call symput("num",compress(num));
  11. run;

  12. data _null_;
  13. set test end=last;
  14.   text=compress(text,'""{}');
  15.   text=tranwrd(text,':','="');
  16.   text=tranwrd(text,',','";');
  17.   text=strip(text)||'";output;';

  18.   length code $1000 varlist $200;
  19.   retain code;
  20.   array var[&num] $ var1-var&num.;
  21.   do i=1 to &num by 2;
  22.    var[i]=scan(text,i,'"=;');
  23.    varlist=strip(varlist)||''||var[i];
  24.   end;

  25. if _n_=1 then code=text;
  26. else code=strip(code)||strip(text);

  27. if last then do;
  28. call execute('data wanted; '||'length '||strip(varlist)||' $200;');
  29. call execute(code);
  30. call execute('run;');
  31. end;
  32. run;

  33. 代码编辑器显示有问题,请改一下21行,就是定义了一下两个变量的长度。
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 03:34