2014-02-13 19 views
2

您好我是新來的SAS我有關於proc轉置問題如何在包含以_分隔的數字的變量上使用proc轉置?

我有這樣的數據

Input 

School Name  State School Code 26/07/2009 02/08/2009 09/08/2009 16/08/2009 
Northwest High IL   14556   06  06    06  06 
Georgia High  GA   147   05  05    05  06 
Macy Hgh   TX   45456   NA  NA    NA  NA 

所需的輸出是

School Name State School Code Date Absent 
Northwest High IL 14566 26/07/2009 6 
Northwest High IL 14556 02/08/2009 6 
Northwest High IL 14556 09/08/2009 6 
Northwest High IL 14556 16/08/2009 6 
Georgia High GA 147  26/07/2009 5 
Georgia High GA 147  02/08/2009 5 
Georgia High GA 147  09/08/2009 5 
Georgia High GA 147  16/08/2009 6 
Macy Hgh  TX 45456 26/07/2009 NA 
Macy Hgh  TX 45456 02/08/2009 NA 
Macy Hgh  TX 45456 09/08/2009 NA 
Macy Hgh  TX 45456 16/08/2009 NA 

這是我的代碼書面

proc sort data=work.input; 
by School_Name State School_Code; 
run; 

proc transpose data=work.input out=work.inputModified; 
by by School_Name State School_Code; 
run 

我得到這個錯誤說沒有變量轉我認爲這個問題是自變量都是這樣_26_07_2009 SAS實際數字不認他們,

但我沒有得到期望的輸出的日期將實際變量導入sas時,它們變成_26_07_2009。請注意,大約有185個日期,它們是實際變量。

感謝

+0

-1:一個非常類似的問題在這裏問:http://stackoverflow.com/questions/21722572/how-to-compare-multi-dimension-data-in-sas/21724498#21724498您需要了解什麼是有效的SAS名稱。有效的SAS名稱不以數字開頭。這也很重要你如何導入 - 首先發布。 – 2014-02-13 09:23:30

+0

以及我正在導入使用proc導入數據文件然後excel文件我無法更改它們是日期的變量 – user3305018

+0

注意如果他們是beining導入的文件中的NA,那麼日期變量將作爲字符串讀入。所以你需要首先將所有的日期變量轉換爲數字,方法是將「NA」設置爲SAS中的數字缺失值。 (點) – 2014-02-13 09:42:36

回答

1

下轉做這項工作:

proc transpose data=work.input out=work.inputModified; 
by School_Name State School_Code; 
var _:; 
run; 

通知的_:符號 - 它拿起其中以下劃線開始和他們調換所有變量。

正如我在前面的評論中的鏈接中所提到的,如果您沒有明確指定要轉移的變量,則proc transpose默認會查找不在by變量列表中轉置的數值變量。但是,由於您的日期變量是以字符串的形式被讀入的[由於存在NA s],因此它說NOTE: No variables to transpose.

您可以使用以下內容將日期和不存在的列轉換爲數字列。

data inputModified2; 
set inputModified; 
format date date9.; 
date = input(compress(tranwrd(_name_,'_','')), ddmmyy8.); 
if col1 NE 'NA' then absent = input(col1, 8.); 
else absent=.; 
drop _name_ col1; 
run; 
+0

好的工作我試圖用更大的數據集會回來給你 – user3305018

+0

嘿我不能upvote你的回答需要聲望 – user3305018

相關問題