2017-01-09 3 views
1

Je veux créer un format sur une variable de chaîne (lundi, mardi, mercredi, vendredi, vendredi) pour voir le résultat de 1 à 5, donc je peux trier les données. J'ai essayé STH comme:SAS, PROC FORMAT changer la chaîne en numérique

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

Dans le fichier journal, une erreur aime ça apparaît:

ERREUR: La chaîne entre guillemets « lundi » est pas acceptable pour un format ou informat numérique. ERREUR 22-322: Erreur de syntaxe, attendez l'un des éléments suivants: une chaîne entre guillemets, un nom de format. ERREUR 200-322: Le symbole n'est pas reconnu et sera ignoré.

Informations complémentaires

Après avoir créé le format, je vais appliquer cela dans l'intrigue, quelque chose comme ci-dessous:

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; 

Utilisation du format, le marqueur dans le nuage de points peut être montré dans un ordre du lundi au vendredi. Sinon, le marqueur sera affiché en fonction de l'ordre alphabétique.

S'il vous plaît partagez votre idée.

Répondre

2

Vous pouvez utiliser et INFORMAT pour créer une nouvelle variable en lisant le nom du jour sous forme de nombre. Par exemple.

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 Merci pour la réponse, qui m'aide à créer le format ** jours **. Après la question ici, comment puis-je l'appliquer au graphique et au modèle? Par exemple, j'utilisais ** Format Day days.; ** dans la syntaxe, mais un message d'erreur indiquant ** Le format DAYS n'a pas été trouvé ou n'a pas pu être chargé. ** est une fenêtre contextuelle. ** –

+0

Mon exemple ne crée pas un FORMAT créé et INFORMAT. Vous devrez fournir plus d'informations sur vos données et votre programme et ce que vous essayez de faire. –

+0

@ data-null Je viens d'éditer mon post. –