SAS Infile格式化

时间:2016-12-01 15:56:40

标签: sas format

我在以下数据上使用infile

数据hw10;

infile'\ Client \ C:\ Users \ drhunt \ Desktop \ datahw10.dat'DDS dlm = '09'X firstobs = 2 Missover;

enter code here

ID年龄性别状况整体Q1 Q2 Q3 Q4
        Q5 Q6 1 22 2学生3 3 1 3 2 3 2 2 21 2学生4 3 2 3 4 3 4 3 18 1学院3 3 2 2 3 3 4 4 19 2学院2 1 2 3 2 3 3 5 26 1学生4 3 4 3 4 4 3 6 20 1学生4 3 2 4 3 3 4 7 29 2学生2 2 3 3 2 3 1 8 22 1学院4 3 2 4 4 4 4 9 19 1学生2 2 4 1 3 3 1 10 20 2学生2 2 2 3 3 1 3 11 60 2学院3 3 3 1 2 2 1 12 22 1学生1 3 2 2 1 2 1

当然,你可以看到它中存在格式错误,所以这是我的代码

input   ID Age Gender Status Overall Q1 Q2 Q3 Q4 Q5 Q6;

Label Q1 = 'Knowlwedgeable about subject'
      Q2 = 'Prepared and organized'
      Q3 = 'Explain concepts well'
      Q4 = 'Held my attention'
      Q5 = 'Encouraged and receptive to questions'
      Q6 = 'Enthusiastic about teaching';


run;
proc print data=hw10;
run;
*Part B Hw10*;
Proc freq data=hw10 Order=Data;
Tables Gender status Gender*status/Chisq Norow;
run;quit;
*Part C Hw10*;
Proc freq data=hw10 Order=Data;
Tables Gender*status/List Nocum;
run;quit;

由于某些原因,我的问题出现在A部分中,包含状态数据的列不会显示在我的输出中。我做错了有什么特别的事吗?

1 个答案:

答案 0 :(得分:0)

如果未在输入语句中指定变量类型,SAS将假定您的输入变量都是数字。尝试在字符变量后添加$符号,例如:

data want;
input ID Age Gender Status $ Overall Q1 Q2 Q3 Q4 Q5 Q6 ;
cards;
1 22 2 Student 3 3 1 3 2 3 2 
2 21 2 Student 4 3 2 3 4 3 4 
3 18 1 Faculty 3 3 2 2 3 3 4 
4 19 2 Faculty 2 1 2 3 2 3 3 
5 26 1 Student 4 3 4 3 4 4 3 
6 20 1 Student 4 3 2 4 3 3 4 
7 29 2 Student 2 2 3 3 2 3 1 
8 22 1 Faculty 4 3 2 4 4 4 4 
9 19 1 Student 2 2 4 1 3 3 1 
10 20 2 Student 2 2 2 3 3 1 3 
11 60 2 Faculty 3 3 3 1 2 2 1 
12 22 1 Student 1 3 2 2 1 2 1
;
run;

这会将状态存储为默认长度为8的字符。其余字符将导入为数字。