2017-01-09 313 views
1

我想在字符串變量(星期一,星期二,星期三,Thrusda,星期五)上創建格式以查看結果爲1到5,以便我可以對數據進行排序。我想某事物:SAS,PROC FORMAT將字符串更改爲數字

proc format; 
    value days 
    'Monday'=1 
    'Tuesday'=2 
    'Wednesd'=3 
    'Thrusda'=4 
    'Friday'=5 
run; 

在日誌文件中,錯誤很喜歡這樣出現:

錯誤:引號的字符串「星期一」是不能接受的數字格式或了信息。 錯誤22-322:語法錯誤,期望以下之一:帶引號的字符串,格式名稱。 錯誤200-322:該符號未被識別並將被忽略。

其他信息

創建格式之後,我會在劇情應用此,類似如下:

PROC GLM data=Newspaper; 
     class Day Newspaper; 
     model ad_effect = Day|Newspaper; 
     **format Day days.;** 
     title 'Analyze the effects of Day & Newspaper'; 
     title2 'Including Interaction'; 
run; 
quit; 
title; 

使用格式,散點圖中的標記可從星期一到星期五按順序顯示。否則,標記將以字母順序顯示。

請分享你的想法。

回答

2

您可以使用INFORMAT通過將日期名稱讀取爲數字來創建新變量。例如。

proc format; 
    invalue days 
    'Monday'=1 
    'Tuesday'=2 
    'Wednesd'=3 
    'Thrusda'=4 
    'Friday'=5; 
    run; 
data days; 
    input day:days.; 
    cards; 
Monday 
Tuesday 
Wednesd 
;;;; 
    run; 
proc print; 
    run; 
+0

@ data-null感謝您的答案,這有助於我創建格式** days **。下面的問題在這裏,我怎樣才能應用這個圖形和模型?例如,我正在使用** Format Day days。; **進入語法,但出現錯誤消息** DAYS格式未找到或無法加載。**彈出。 ** –

+0

我的示例沒有創建它創建的FORMAT和INFORMAT。您將不得不提供有關您的數據和程序的更多信息以及您正在嘗試執行的操作。 –

+0

@ data-null我剛編輯我的文章。 –