首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用输入语句末尾的“@”在SAS中创建一个观察之前测试一个条件

使用输入语句末尾的“@”在SAS中创建一个观察之前测试一个条件
EN

Stack Overflow用户
提问于 2018-05-15 10:24:14
回答 2查看 46关注 0票数 1

我已经阅读了在线文档,从它,我认为它只适用于列输入法。如何将其与列表输入法结合使用?

/This Works/

代码语言:javascript
复制
data new;

    input height 25-26 @;
    if height = 6 ;
    input name $ 1-8 colour $ 9-13 place $ 16-24 ;
    datalines;

Deepak  Red    Delhi    6
Aditi   Yellow Delhi    5
Anup    Blue   Delhi    5
Era     Green  Varanasi 5
Avinash Black  Noida    5
Vivek   Grey   Agra     5
;
run;

/*,但这不是*/

代码语言:javascript
复制
data new;

    input height @;
    if height = 6;
    input name $ colour $ place $ height;
    datalines;

Deepak Red Delhi 6
Aditi Yellow Delhi 5
Anup Blue Delhi 5
Era Green Varanasi 5
Avinash Black Noida 5
Vivek Grey Agra 5
;
run;

LOG:
NOTE: Invalid data for height in line 79 1-6.
 79         Deepak  Red    Delhi    6
height=. name=  colour=  place=  _ERROR_=1 _N_=1
 NOTE: Invalid data for height in line 80 1-5.
80         Aditi   Yellow Delhi    5
height=. name=  colour=  place=  _ERROR_=1 _N_=2
EN

回答 2

Stack Overflow用户

发布于 2018-05-15 11:20:48

第一数据线的固定布局使从特定位置输入字段成为可能。

第二个布局在布局中是可变的,因此很难任意抓取特定的字段。

那么,怎么了?在第二个数据步骤中,input将从行的开头读取,因此它不会从名称所在的位置读取数字。

不要担心“减少处理”,只读一行的一部分。保持输入和条件处理更常用于处理内容中有某种变体或条件数据项的数据线。

票数 2
EN

Stack Overflow用户

发布于 2018-05-15 15:05:44

对于这两种格式,我将读取所有变量,然后添加逻辑以基于值进行筛选。

如果您确实需要在决定如何读取行之前检查行上的最后一个"word“是否与某些条件匹配,那么您可能需要尝试使用自动_infile_变量。

代码语言:javascript
复制
data new;
  input @ ;
  if scan(_infile_,-1,' ') = '6';
  input name $ colour $ place $ height;
datalines;
Deepak Red Delhi 6
Aditi Yellow Delhi 5
Anup Blue Delhi 5
Era Green Varanasi 5
Avinash Black Noida 5
Vivek Grey Agra 5
;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50347849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档