1646 4

[问答] 求教!如何从不统一格式地区变量中将 省和市 提出 分列为两列变量? [推广有奖]

  • 0关注
  • 0粉丝

本科生

18%

还不是VIP/贵宾

-

威望
0
论坛币
1316 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
215 点
帖子
10
精华
0
在线时间
141 小时
注册时间
2017-8-14
最后登录
2023-12-17

楼主
迷人的小鲁班 发表于 2017-9-10 09:42:02 |AI写论文
100论坛币
公司所在地
北京市
广东省深圳市
深圳市
广东省珠海市某某县
内蒙古自治区呼和浩特市

如上例子 现在想通过scan函数实现
求大神指教用什么程序可以实现? 或者有什么好办法? 感谢!
关键词:内蒙古自治区 呼和浩特市 呼和浩特 scan 深圳市

沙发
l1i2n3i4n5g 在职认证  发表于 2017-9-10 09:42:03
  1. option validvarname=any;
  2. data test;
  3. input 公司所在地 : $100.;
  4. cards;
  5. 北京市
  6. 广东省深圳市
  7. 深圳市
  8. 广东省珠海市某某县
  9. 内蒙古自治区呼和浩特市
  10. ;
  11. run;

  12. data test1;
  13.         set test;
  14.         if kindex(公司所在地,'省') or kindex(公司所在地,'自治区') then
  15.         "省/自治区"n=kscan(公司所在地,1,'省''自治区');

  16.         if kindex(公司所在地,'市') then do;
  17.                 if kindex(公司所在地,'省') or kindex(公司所在地,'自治区') then
  18.                         市=kscan(公司所在地,2,'省''自治区''市');
  19.                 else 市=kscan(公司所在地,1,'省''自治区''市');
  20.         end;
  21. run;
  22. proc print;
  23. run;
复制代码

藤椅
迷人的小鲁班 发表于 2017-9-10 11:01:36
l1i2n3i4n5g 发表于 2017-9-10 10:46
谢谢~请问怎么该能使 北京市 也列在 省 列中?

板凳
l1i2n3i4n5g 在职认证  发表于 2017-9-10 11:26:40
data test2;
        set test;
        pattern='/((.*)(省|自治区))?((.*)市)?/o';
        pattern_id=prxparse(pattern);
        if prxmatch(pattern_id,公司所在地) then do;
                "省/自治区"n=prxposn(pattern_id,2,公司所在地);
                市=prxposn(pattern_id,5,公司所在地);
        end;
run;

报纸
l1i2n3i4n5g 在职认证  发表于 2017-9-10 16:11:25
迷人的小鲁班 发表于 2017-9-10 11:01
谢谢~请问怎么该能使 北京市 也列在 省 列中?
单独做个判断语句不就行了

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

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