1. 用 VC 開啟小算盤, FILE -> Open "open as 選 binary"-> 選取小算盤的目錄, 選 calc.exe, 開啟它
2. 在 Search edit 中輸入 Degree, 找尋 .exe 中出現 Degree 的地方. 找到會停在 D 的位置 (可以先執行正常的小算盤, 然後在目錄點選 "檢視" 可看到目錄內容, 找一個像是唯一的字就可以實驗, 此例選的是: "Degree")
1. 用 VC 開啟小算盤, FILE -> Open "open as 選 binary"-> 選取小算盤的目錄, 選 calc.exe, 開啟它
2. 在 Search edit 中輸入 Degree, 找尋 .exe 中出現 Degree 的地方. 找到會停在 D 的位置 (可以先執行正常的小算盤, 然後在目錄點選 "檢視" 可看到目錄內容, 找一個像是唯一的字就可以實驗, 此例選的是: "Degree")
破解工具需要的工具, 常用的工具有. Debug Trace, disammably, editor, system viewer/editor, memory viewer/editor, 現成的工具
如何取出分組最大值, 最小值, 總和, 平均數, 及各分組各有多少筆?
data d;
SAS 問題集: 建立解法中, 部分題目已寫完數個解法. 可能會用DATA STEP, SQL, 或是 IML 來解決這些問題. 這三種不同的SAS 工具可以選擇來解決問題. 一般原則: 資料及統計值沒有順序闗係的, SQL 是比較好的選擇, 如果是Merge 類型, 不管條件單純或複雜的, SQL 是好選擇, 如果與前一筆後一筆有關係的. 可用先sort 後再用Data Step. 如果關係牽連很廣, 條件也複雜, 當資料不大可以一次讀得進來, 可用 IML, 可以一次搞定. 當然 SQL, Data step 都辦得到,只是中間檔要經巧妙的設計, 要加很多 dummy variables. 及多次中間檔轉換.
1. 如何取出分組最大值, 最小值, 總和, 平均數, 及各分組各有多少筆 ?
Data Step 粗分有二種目的. A. 從一些外部的資料檔讀進成為 sas 資料檔(庫) B. 將已存在的資料檔, 做進一步的處理, 整理成為新的 sas 資料檔. 以下會分別說明.
-----------------------------------------------------------------
資料要經過選擇, 合條件留下來, 不合條件移除, 或是不同條件分到不同的檔案. 以利接下來的資料處理.
DATA AA;
INTERAL VARIABLE(內部變數)
_N_ : 的 PSEUDO code
先看 pseudo code
1. create new file aa;
data d;
input id name$ price;
/* 對齊第5筆的寫法 */
proc IML SYMSIZE=10000; * 程式大時, 可能會無法跑, 這時要加SYMBOL SIZE;
取出上一筆交易日, 或上一筆交易日的時間差. 的DELTA 時間, 假日不算. 這是有趣的問題. 不是太容易.
/* 先建立一個測試用的 data set, 以下以此當例子 */ *以下的例子片段都可以copy 到 data a 那段程式中, run 之前, 便可以實驗及跑出結果;
data d;
語法: create table OUT_NAME as
select 以下定義要輸出的欄位,以 ","分開, 可用as 改新的名字; wildcard * 也可以用.是指全部的欄位.
在 SAS 內, 統計用的軟體, data step 中都是只能像interpreter一行一行的做, 要寫串起來又有迴圈的程序就初學者是有困難的, 只能寫MACRO, 尤其像是有資訊背景的人. 這一點都不像程式語言, 看起來會很亂. IML 是SAS 中的一組套件, 是一種結構化語言, 只要想辦法將資料庫轉到IML, 就可以寫出有結構化的程序.
IML 對我來說是一件比較舒服的解. 以下就是一個example 完整的小程式, 常會用到的指令. 都包含在其中, 也給指令不熟的人. 或是對IML不熟的人提供一個簡單的殼. 因大部的處理流程都是固定的. 記下這些程序. 方便自己使用.