[英]IF THEN statement in SAS
我不确定为什么这段代码在 SAS 中不起作用。 请问有人可以帮忙吗?
DATA WORK.POLLUTION;
INPUT State $ County $ City $ Month $ Year $ O3MAX $ Category;
IF O3MAX < 0.054 THEN Category = "Good";
ELSE IF O3MAX < 0.070 THEN Category = "Moderate";
ELSE IF O3MAX < 0.085 THEN Category = "UnhealthySensitive";
ELSE IF O3MAX < 0.105 THEN Category = "Unhealthy";
ELSE IF O3MAX < 0.200 THEN Category = "VeryUnhealthy";
ELSE Category = "Dangerous";
RUN;
PROC PRINT DATA = WORK.POLLUTION;
TITLE= "O3";
RUN;
input
语句告诉 SAS 如何从文本文件中读取,但它没有指定在何处查找 tekst。 您使用infile
语句执行的操作,例如
DATA WORK.POLLUTION;
INFILE "C:\myFolder\myInput.txt";
INPUT State $ County $ City $ Month $ Year $ O3MAX $ Category;
...;
run;
或者,您可以通过为文件命名并引用它来预先提供有关文件的信息:
filename MY_TEXT "C:\myFolder\myInput.txt";
DATA WORK.POLLUTION;
INFILE MY_TEXT;
INPUT State $ County $ City $ Month $ Year $ O3MAX $ Category;
...;
run;
一个特殊的文件名是datalines
,它指的是内联数据,位于datalines
语句和分号之间
DATA WORK.POLLUTION;
INFILE datalines;
INPUT State $ County $ City $ Month $ Year $ O3MAX $ Category;
...;
datalines;
<your data comes here>
;
run;
如果你没有在文件infile datalines;
指定 INFILE 语句infile datalines;
是隐式使用的,但由于您没有提供datalines;
声明,没有输入。 我敢打赌,您的日志会说明有关读取零行的信息。
顺便问一下,为什么在input
语句中指定 Category ? 我想它只在你的输出中。
关于infile
语句还有很多要说的。 例如,您可以选择处理未填充所有数据的行,例如trunkover
,您应该阅读一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.