libname deepak 'C:\SAS Files';
proc format;
invalue convert 'A+' = 100
'A' = 96
'A-' = 92
'B+' = 88
'B' = 84
'B-' = 80
'C+' = 76
'C' = 72
'F' = 65;
data deepak.grades;
input ID $3. Grade convert.;
*format Grade convert. ;
datalines;
001 A-
002 B+
003 F
004 C+
005 A
;
proc print data = deepak.grades;
run;
I get the following output
Obs ID Grade
1 001 .
2 002 .
3 003 .
4 004 .
5 005 .
I don’t understand why Grade shows up as a missing value.
Everything seems fine, including ID $3.
Now, in case I use ID : $3. Or use column input, I get the
desired output.
Kindly help
Deepak
Answers were Sorted based on User's Feedback
Answer / kondal
i hope this code will work.
data grades;
input ID $3. Grade : convert.;
datalines;
001 A-
002 B+
003 F
004 C+
005 A
;
proc print data =grades;
run;
Is This Answer Correct ? | 4 Yes | 1 No |
Answer / deepak
Thanks Kondal,
But why does it not work? If u see there, ID has only 3
columns, and technically it must work without a colon (ID :
$3.). I get a perfct output with a semicolon, but without it
I dont.
Is this something specific about user defined Informats?
Appreciate any help
Deepak
Is This Answer Correct ? | 1 Yes | 1 No |
Answer / amaresh
proc format;
invalue convert 'A+' = 100
'A' = 96
'A-' = 92
'B+' = 88
'B' = 84
'B-' = 80
'C+' = 76
'C' = 72
'F' = 65;
run;
data grades;
input ID @5 Grade convert.;
datalines;
001 A-
002 B+
003 F
004 C+
005 A
;
run;
Is This Answer Correct ? | 1 Yes | 1 No |
Hi,
you must assign position of Grade variable.you gave a length of id is $3. so you must gave a proper position to Grade variable otherwise it will show the missing.
proc format;
invalue convert 'A-' = 100
'A' = 96
'B+' = 88
'C+' = 76
'F' = 65
;
run;
data deepak;
input ID $3. @5 Grade convert.;
datalines;
001 A-
002 B+
003 F
004 C+
005 A
;
run;
proc print data = deepak;
run;
Is This Answer Correct ? | 0 Yes | 0 No |
Answer / virat samratt
proc format;
invalue $convert 'A+' = 100
'A' = 96
'A-' = 92
'B+' = 88
'B' = 84
'B-' = 80
'C+' = 76
'C' = 72
'F' = 65;
data grades;
input ID $3. Grade$ convert.;
datalines;
001 A-
002 B+
003 F
004 C+
005 A
;
add $ before format name in proc format statement
then you will get
Is This Answer Correct ? | 0 Yes | 0 No |
Answer / ramakrishna
proc format;
invalue convert 'A+' = 100
'A' = 96
'A-' = 92
'B+' = 88
'B' = 84
'B-' = 80
'C+' = 76
'C' = 72
'F' = 65;
run;
data grades;
input ID $3. Grade $ convert.;
*format Grade convert. ;
datalines;
001 A-
002 B+
003 F
004 C+
005 A
;
proc print data = grades;
run;
Is This Answer Correct ? | 0 Yes | 2 No |
What does the RUN statement do?
Explain proc sort?
How to convert a given date value into SAS date
9 Answers CitiGroup, Quintiles,
which date functions advances a date time or date/time value by a given interval? : Sas programming
Describe the ways in which you can create macro variables?
What is the function of output statement in a SAS Program?
do you prefer proc report or proc tabulate? Why? : Sas programming
What are the best sas programming practices for handling very large datasets? : sas-grid-administration
What is the pound sign used for in the data_null_ ?
What is slibref?
what is information maps?
what is conditional processing?