作者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