全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4288 6
2013-01-07
我目前碰到这样一个问题:
1、有50万条记录,60个变量
2、每个变量都是的数据都是代码,例如有个变量是行政单位,数据集里面存储的是10020,实际是指陈家村。
3、有个单独的表格说明某个代码对应的村名。
如何在sas数据集里面自动将10020显示为陈家村,在access里面是说用数据字典功能可以实现。求教:
1、如何能够显示实际名称而不是代码。
2、或者能够批量将代码替换为实际名称。
谢谢!!!!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-8 05:23:39
不是应该用format功能就可以了吗?
当然数据本身没有改变,改变的是display,如果真的要数据也要改,将50w条记录里面的某一列的数值,比如10020全部变成“陈家村”的话,那就要写data step或者用proc sql 更快一点把
二维码

扫码加我 拉你入群

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

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

2013-1-8 09:23:39
LZ说的是不是这样。。。
复制代码
或者:
proc sql;
create table test4 as select a.name,b.text from test2 a inner join test1 b on a.id=b.id;
quit;
run;
二维码

扫码加我 拉你入群

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

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

2013-1-8 12:05:34
data MainTable; /* main table */
   input ID City_Code District_code Admin_code;
datalines;
1001 100 101 10020
1002 200 102 20031
1003 300 103 30022
1005 500 104 50010
; run;


data Admin; /* lookup table for admin name */
input Admin_code AdminName $15.;
datalines;
10020 AdminName1
20031 AdminName2
30022 AdminName3
40031 AdminName4
50010 AdminName5
; run;

Data City;  /* lookup table for city */
input City_code CityName $15.;
datalines;
100 CityName1
200 CityName2
300 CityName3
400 CityName4
500 CityName5
; run;

/* Create a format table for admin */
data Admin_fmt (rename=(admin_code=Start AdminName=label));
    set Admin;
        retain fmtname 'Admin' type 'n';
run;

/* create a format table for city */
Data city_fmt (rename=(city_code=start cityName=label));
    set City;
        retain fmtname 'City' type 'n';
run;
/* create the formats for City and Admin */
proc format lib = work Cntlin = admin_fmt; run;
proc format lib = work cntlin = city_fmt; run;

/* display the results */
proc sql;
      select ID, City_code as City format=city., admin_code as Admin format=admin.
from maintable;
quit;

data MainTable_with_name (rename=(City_code = City Admin_code = Admin));
    set MainTable;
        format city_code city.;
        format admin_code admin.;
run;
二维码

扫码加我 拉你入群

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

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

2013-1-8 12:57:58
tangliang0905 发表于 2013-1-8 05:23
不是应该用format功能就可以了吗?
当然数据本身没有改变,改变的是display,如果真的要数据也要改,将50w ...
正在研究这种方法,
二维码

扫码加我 拉你入群

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

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

2013-1-8 13:12:26
yzsxdlcc 发表于 2013-1-8 09:23
LZ说的是不是这样。。。或者:
proc sql;
create table test4 as select a.name,b.text from test2 a inn ...
谢谢,进一步学习
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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