作者dreamreader (健康第一)
看板Statistics
标题[程式] SAS 大量的变数类型转换
时间Fri Jan 28 14:33:10 2011
[软体程式类别]:
SAS
[程式问题]:
用SAS做大量变数类型转换
从原始档案读进SAS的资料类型有些问题
需要把各年的变数类型统一再Set在一起
原本是用土法炼钢的方式一个一个改
想请问高手面对这种问题的时候有没有什麽有效率的方法
[软体熟悉度]:
中
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.25.110.136
※ 编辑: dreamreader 来自: 163.25.110.136 (01/28 14:34)
1F:推 tew:哪方面的资料类型问题 01/28 15:18
2F:→ dreamreader:一部分是文字转数字 一部份是数字转文字 01/28 15:40
※ 编辑: dreamreader 来自: 163.25.110.136 (01/28 16:28)
3F:推 wlsherica:有例子吗? 01/28 17:38
抱歉没讲清楚
举个例子说
基本上我们一共有四年的资料
每年的变数都有100多个
要分别读出来之後Set在一起
其中三年是txt档输入
infile之後 一个一个设置变数位置
其中有一年的资料因为档案过大的关系 用txt或xls都会有问题
最後转成csv可以成功import进SAS
但问题是SAS自动读的档案格式会有些问题
例如变数 A B C D E
正确变数类别 Char Char Num Num Num
但SAS读出类别 Num Char Char Num Char
目前想到的方法是把 数字转文字 和 文字转数字 分开写
数字转文字:
array a{2} A D;
array newa{2} $ Ar Dr;
do i=1 to 2; newa{i}=a{i};
文字转数字:
array b{3} B C E;
array newb{3} Br Cr Er;
do i=1 to 3; newb{i}=b{i}*1;
但这样做有一个问题
就是变数会是以array的名称来记录
跟其他年度的data Set在一起的时候会有问题
不知道有没有人能提供意见 谢谢
※ 编辑: dreamreader 来自: 61.224.232.71 (01/28 22:24)
※ 编辑: dreamreader 来自: 61.224.232.71 (01/28 22:28)
※ 编辑: dreamreader 来自: 61.224.232.71 (01/28 22:31)
4F:→ liton:还是不懂你的问题Array只是运算时简化栏名的方法 跑完就没了 01/29 00:34
5F:→ liton:另外...数字转文字是这样转吗? 01/29 00:35
6F:→ dreamreader:喔喔 所以还是得把Array转回变数就是了? 01/29 06:50
7F:→ dreamreader:昨天试的时候,用put()来做数字转文字搭配Array没办法 01/29 06:52
8F:→ dreamreader:跑 後来照上面的方法是可以成功 01/29 06:52