我的SAS代码有错误。我能得到帮助吗?

我的SAS代码有错误。我能得到帮助吗?,sas,Sas,当我运行代码时,我得到一个错误:错误180-322:语句无效或使用顺序不正确。我想创建一个表,输入ID为default,student 这是我的示例代码。能让人看看我的代码吗 代码: 这是我得到的错误代码: 1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK; 72 73 data have; 74 input ID default student 75

当我运行代码时,我得到一个错误:错误180-322:语句无效或使用顺序不正确。我想创建一个表,输入ID为default,student

这是我的示例代码。能让人看看我的代码吗

代码:

这是我得到的错误代码:

 1          OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
 72         
 73         data have;
 74         input ID  default student
 75         cards;
 76         (1) yes    yes
            _
            180
 ERROR 180-322: Statement is not valid or it is used out of proper order.
 
 77         (2) Yes    No
 78         (3) NO    Yes
 79         (4) No     No
 80         
 81         ;
 82         run;
 
 ERROR: No DATALINES or INFILE statement.
 NOTE: The SAS System stopped processing this step because of errors.
 WARNING: The data set WORK.HAVE may be incomplete.  When this step was stopped there were 0 observations and 4 variables.
 WARNING: Data set WORK.HAVE was not replaced because this step was stopped.
 NOTE: DATA statement used (Total process time):
       real time           0.00 seconds
       cpu time            0.01 seconds

input语句没有用于标记结束的分号。因此,您正在读取一个名为CARDS的变量作为输入语句的一部分。因此,您的数据行被视为生成错误消息的更多SAS命令

一旦您修复了这个问题,那么您还需要修复您的输入语句。不能将
(1)
这样的字符串作为数字读取。但ID变量通常不会在算术中使用,所以只需将其设置为字符变量即可。像
yes
yes
这样的字符串也不能作为数字读取

data have;
  input ID $ default $ student $;
cards;
(1) yes    yes   
(2) Yes    No   
(3) NO    Yes   
(4) No     No   
;

最好发布SAS日志中的行,以便您可以准确地看到SAS在代码中检测到问题的位置。对于您昨天发布的问题,这不是必需的,SAS将在默认情况下进行分组。看起来我不需要输入ID。如果您希望以简单列表模式读取该行,就像您的输入语句正在执行的操作一样,则需要将该行的该部分读入某些内容。其他选择包括从内嵌数据行中删除这些字符。或者在输入语句中使用
@
光标移动来移动这些字符<代码>输入@4默认$student$这个怎么样?有数据;输入默认值$student$;卡;是是是否是否;我不能用()来表示身份证?我不知道你在问什么。在答案中的代码中,括号是读取到ID变量中的字符串值的一部分。
data have;
  input ID $ default $ student $;
cards;
(1) yes    yes   
(2) Yes    No   
(3) NO    Yes   
(4) No     No   
;