楼主: 豆豆的爸爸
4237 6

[问答] 求教,如何使用数据字典功能 [推广有奖]

  • 0关注
  • 0粉丝

高中生

62%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
119 点
帖子
16
精华
0
在线时间
45 小时
注册时间
2012-10-23
最后登录
2015-12-2

楼主
豆豆的爸爸 发表于 2013-1-7 12:21:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

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

扫码加我 拉你入群

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

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

关键词:如何使用 数据字典 使用数据 sas数据集 access 如何

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

藤椅
yzsxdlcc 发表于 2013-1-8 09:23:39
LZ说的是不是这样。。。
  1. data test1;
  2. input id text $;
  3. cards;
  4. 1 我爱你
  5. 2 我恨你
  6. 3 在一起
  7. 1 我不要
  8. 3 恨死你
  9. 2 不会爱了
  10. ;
  11. run;

  12. data test2;
  13. input id name $;
  14. cards;
  15. 1 大妈部门
  16. 3 有关部门
  17. 2 相关部门
  18. ;
  19. run;

  20. proc sort data=test1;
  21. by id;
  22. run;

  23. proc sort data=test2;
  24. by id;
  25. run;

  26. data test3(drop=id);
  27. merge test2 test1;
  28. by id;
  29. run;
复制代码
或者:
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;
从骨感走向丰满

文库

板凳
yongyitian 发表于 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 ...
谢谢,进一步学习

7
豆豆的爸爸 发表于 2013-1-8 13:13:01
yongyitian 发表于 2013-1-8 12:05
data MainTable; /* main table */
   input ID City_Code District_code Admin_code;
datalines;
谢谢,进一步学习

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

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