楼主: cristina2010
2391 10

[问答] 求助!数据分类 [推广有奖]

  • 0关注
  • 0粉丝

本科生

49%

还不是VIP/贵宾

-

威望
0
论坛币
1938 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
553 点
帖子
25
精华
0
在线时间
165 小时
注册时间
2010-10-3
最后登录
2023-5-24

楼主
cristina2010 发表于 2011-1-19 15:54:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现在有一4万左右的数据,分为省级数据,市级数据和县级数据,想新增加一个变量,将省级数据标注为1,市级、县级分别标注为2、3
谢谢各位大牛
二维码

扫码加我 拉你入群

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

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

关键词:数据分类 省级数据 求助 SAS 数据分类

回帖推荐

elek.me 发表于8楼  查看完整内容

本帖被以下文库推荐

沙发
myzhang1982 在职认证  发表于 2011-1-19 16:00:54
那就加个变量呗,if ~~~ then x=1; else if ~~ then x=2; else x=3;

藤椅
cristina2010 发表于 2011-1-19 16:18:02
不过地域名是字符型的,而且是XX省,XX市,XX县
2# myzhang1982

板凳
myzhang1982 在职认证  发表于 2011-1-19 17:05:49
那也没问题,直接截取那个字符,if substr(~~)=‘省’then ~~~~~

报纸
myzhang1982 在职认证  发表于 2011-1-19 17:07:19
如果有data,可以放几条记录上来看看

地板
cristina2010 发表于 2011-1-19 17:40:27
2009  "河北省"                                   3483490
2009  "石家庄市"                                2326  
2009  "正定县"                                   17460  
2009  "栾城县"                                   12910  
2009 "唐山市"                                     776137

7
cristina2010 发表于 2011-1-19 18:09:18
但省和省,市和市什么的字数不太一样

8
elek.me 发表于 2011-1-19 21:19:34
  1. data have;
  2.         input year prov :$20. id;
  3. cards;
  4. 2009  "河北省"                                   3483490
  5. 2009  "石家庄市"                                2326  
  6. 2009  "正定县"                                   17460  
  7. 2009  "栾城县"                                   12910  
  8. 2009 "唐山市"                                     776137
  9. ;

  10. * ksubstr function;
  11. data want;
  12.         set have;
  13.         if ksubstr(strip(kreverse(prov)),2,1)="省" then type=1;
  14.         if ksubstr(strip(kreverse(prov)),2,1)="市" then type=2;
  15.         if ksubstr(strip(kreverse(prov)),2,1)="县" then type=3;
  16. run;

  17. * prxmatch function;
  18. data want;
  19.         set have;
  20.         if prxmatch('m/\省"$/',strip(prov)) then type=1;
  21.         if prxmatch('m/\市"$/',strip(prov)) then type=2;
  22.         if prxmatch('m/\县"$/',strip(prov)) then type=3;
  23. run;
复制代码
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

我的博客: http://elek.me/sas
联系我: http://about.me/elek

9
shirly_zhang 发表于 2011-1-19 23:14:19
proc sql;
select year,prov,
case
when prov like '%省%' THEN 1
WHEN prov LIKE '%市%' THEN 2
when prov like '%县%' then 3
else 0
end as type
from  have;
quit;

10
sber 发表于 2011-1-19 23:34:43
data have;
input year prov :$20. id;
if substr(prov,(length(prov)-2),2)="省" then type="1";
if  substr(prov,(length(prov)-2),2)="市" then type="2";
if substr(prov,(length(prov)-2),2)="县" then type="3";

cards;
2009  "河北省"                                   3483490
2009  "石家庄市"                                2326  
2009  "正定县"                                   17460  
2009  "栾城县"                                   12910  
2009 "唐山市"                                     776137
;
run;

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

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